hermes-webui
Hermes WebUI: The best way to use Hermes Agent from the web or from your phone!
File Explorer
Download Latest Version (.zip)- browser-smoke.yml
- conversation-lifecycle.yml
- docker-smoke.yml
- docs-ci.yml
- native-windows-startup.yml
- release.yml
- tests.yml
- FUNDING.yml
- __init__.py
- agent_health.py
- agent_runtime.py
- agent_sessions.py
- auth.py
- auth_oidc.py
- background.py
- background_process.py
- clarify.py
- commands.py
- compression_anchor.py
- compression_recovery.py
- config.py
- crash_visibility.py
- dashboard_probe.py
- extension_sidecar_auth.py
- extensions.py
- gateway_chat.py
- gateway_restart.py
- gateway_watcher.py
- goals.py
- helpers.py
- kanban_bridge.py
- media_snapshots.py
- metering.py
- models.py
- oauth.py
- office_documents.py
- onboarding.py
- passkeys.py
- paths.py
- plugin_providers.py
- plugins.py
- process_event_utils.py
- profiles.py
- providers.py
- request_diagnostics.py
- rollback.py
- route_approvals.py
- route_session_list_cache.py
- routes.py
- run_journal.py
- runner_client.py
- runtime_adapter.py
- session_discoverability.py
- session_events.py
- session_export_html.py
- session_lifecycle.py
- session_ops.py
- session_recovery.py
- shares.py
- skill_usage.py
- sse_chunked.py
- startup.py
- state_sync.py
- streaming.py
- subprocess_utils.py
- system_health.py
- terminal.py
- todo_state.py
- turn_journal.py
- updates.py
- upload.py
- usage.py
- webui_session_db.py
- workspace.py
- workspace_git.py
- worktrees.py
- agent-api-contract.md
- stable-assistant-turn-anchor-phase0.md
- unified-session-db.md
- pr-2458-board-selector-after.png
- pr-2458-board-selector-before.png
- pr-2919-clarify-after-desktop.png
- pr-2919-clarify-before-desktop.png
- pr-tool-read-range-label-after.png
- pr-tool-read-range-label-before.png
- ui-sessions.png
- ui-workspace.png
- update-banner-whats-new-after-summary-off.png
- update-banner-whats-new-after-summary-on.png
- update-banner-whats-new-after.png
- update-banner-whats-new-before.png
- restore-top-titlebar-after.png
- restore-top-titlebar-before.png
- llm-wiki-status.png
- update-network-error.png
- claude-code-onboarding.png
- codex-oauth-onboarding.png
- eager-config-app-shell.png
- raw-pre-render-validation.png
- logs-tab-mvp.png
- insights-before.png
- insights-daily-tokens-models.png
- dashboard-nav-link.png
- tps-toggle-off-default.png
- tps-toggle-on-hot-apply.png
- tps-toggle-settings.png
- chat-no-health-bar.png
- insights-system-health.png
- scroll-preserved-after-completion.png
- workspace-double-click-rename.png
- model-cache-auth-store-refresh.png
- profile-switch-away-from-running-session.png
- activity-focus-reload.png
- active-elapsed-timer.png
- activity-summary-after.png
- activity-summary-before.png
- codex-quota-error-collapsed.png
- codex-quota-error-expanded.png
- session-model-fallback.png
- cli-tool-metadata-api-evidence.json
- sidebar-scroll-fixture.png
- sidebar-scroll-qa.json
- workspace-preview-breadcrumb-before.png
- workspace-root-breadcrumb-fixed.png
- issue-1787-transcript-order.png
- sidebar-first-turn-click-away-fixed.png
- error-toast-after.png
- error-toast-before.png
- error-toast-copy.png
- providers-api-openai-codex.json
- providers-openai-codex-expanded.png
- goal-autocomplete.png
- goal-command-set.png
- goal-status-command.png
- no-agent-cron-edit.png
- kanban-hard-refresh-diagnostic.png
- auto-compression-running-card.png
- compression-toast-visible.png
- home-shell-normal.png
- after-hover-no-workspace.png
- before-hover-no-workspace.png
- goal-evaluating-status.png
- profile-skills-tab.png
- after-workspace-menu.png
- before-workspace-menu.png
- bulk-archive-confirm-desktop.png
- bulk-delete-confirm-desktop.png
- single-delete-confirm-desktop.png
- single-delete-confirm-mobile-390.png
- single-session-action-menu-desktop.png
- daily-tokens-365-desktop.png
- worktree-remove-confirm.png
- worktree-remove-menu.png
- after-mcp-tools-paginated.png
- before-mcp-tools-unbounded.png
- after-compact-prior-turns.png
- before-compact-prior-turns.png
- after-session-extra-large.png
- before-session-large.png
- after-phone-drawer-dark.png
- before-phone-drawer-dark.png
- after-question-highlight.png
- after-question-jump-button.png
- before-no-question-jump.png
- skill-detail-after.png
- skill-detail-before.png
- cron-output-collapsed.png
- cron-output-expanded.png
- after-source-tabs.png
- before-cli-mixed.png
- after-thinking-copy.png
- before-thinking-copy.png
- bench.py
- new-conversation-idle.png
- new-conversation-pending.png
- PR_BODY.md
- model-endpoint-error-hint.png
- fullpage_idle_dark_390.png
- ptr_active_dark_1280.png
- ptr_active_dark_1440.png
- ptr_active_dark_1920.png
- ptr_active_dark_390.png
- ptr_active_light_1280.png
- ptr_active_light_1440.png
- ptr_active_light_1920.png
- ptr_active_light_390.png
- reload-btn_dark-hover_1280.png
- reload-btn_dark-hover_1440.png
- reload-btn_dark-hover_1920.png
- reload-btn_dark-hover_390.png
- reload-btn_dark_1280.png
- reload-btn_dark_1440.png
- reload-btn_dark_1920.png
- reload-btn_dark_390.png
- reload-btn_light-hover_1280.png
- reload-btn_light-hover_1440.png
- reload-btn_light-hover_1920.png
- reload-btn_light-hover_390.png
- reload-btn_light_1280.png
- reload-btn_light_1440.png
- reload-btn_light_1920.png
- reload-btn_light_390.png
- tree-indent-after.png
- tree-indent-before.png
- after-mobile-suggestions-hidden.png
- before-mobile-suggestions.png
- status-command-card.png
- session-list-virtualization-synthetic.png
- plugins-panel.png
- task-profile-badges.png
- task-profile-selector.png
- claude-code-import-readonly.png
- system-health-panel.png
- mcp-servers-system-panel.png
- mcp-tools-search-filter.png
- openrouter-quota-card.png
- agent-health-alert.png
- gateway-routing-before.png
- gateway-routing-metadata.png
- message-window-top.png
- profile-create-after.png
- profile-create-before.png
- activity-expanded.png
- activity-persisted-closed.png
- after-label.png
- before-label.png
- catppuccin-dark.png
- catppuccin-light.png
- skill-detail-error-after.png
- skill-detail-error-before.png
- after.png
- before.png
- after.png
- before.png
- session-pinned-sidebar.png
- clarify-collapsed.png
- clarify-expanded.png
- after-live-timeline-preserved.png
- before-session-switch-rebuild.png
- after-sienna-light.png
- before-after-dark-poseidon-comparison.png
- before-after-light-sienna-comparison.png
- before-sienna-light.png
- after-hover-qa.png
- after-index.png
- after-two-stage.png
- before-index.png
- before-two-stage.png
- duplicate-summary-after.png
- duplicate-summary-before.png
- large-range-after.png
- large-range-before.png
- agent-source-boundary.md
- canonical-session-resolution.md
- hermes-run-adapter-contract.md
- live-to-final-assistant-replies.md
- README.md
- session-sse-contract-v1.md
- stable-assistant-turn-anchors.md
- transparent-stream-activity-mode.md
- turn-journal.md
- webui-pending-intent-controls.md
- webui-run-state-consistency-contract.md
- desktop-decision-board.png
- desktop-dock-mockup.png
- desktop-variants.png
- webui-logo-dark-light.png
- pr4024-transparent-stream-dark.png
- pr4024-transparent-stream-light.png
- index.html
- two-stage-proposal.html
- advanced-chat-setup.md
- CONTRACTS.md
- docker.md
- EXTENSIONS.md
- GUIDELINES.md
- ISSUES.md
- onboarding-agent-checklist.md
- onboarding.md
- remote-access.md
- sse-streams.md
- supervisor.md
- troubleshooting.md
- UIUX-GUIDE.md
- why-hermes.md
- workspace-git.md
- wsl-autostart.md
- nixosModules.nix
- packages.nix
- health_probe.sh
- setup_webui_autostart.ps1
- hermes_webui_autostart.sh
- audit_agent_source_dependencies.py
- critical_markdown_check.py
- repair_workspace_user_turns.py
- ruff_lint.py
- scope_undef_gate.py
- test.sh
- test_critical_markdown_check.py
- js-yaml.min.js
- KaTeX_AMS-Regular.ttf
- KaTeX_AMS-Regular.woff
- KaTeX_AMS-Regular.woff2
- KaTeX_Caligraphic-Bold.ttf
- KaTeX_Caligraphic-Bold.woff
- KaTeX_Caligraphic-Bold.woff2
- KaTeX_Caligraphic-Regular.ttf
- KaTeX_Caligraphic-Regular.woff
- KaTeX_Caligraphic-Regular.woff2
- KaTeX_Fraktur-Bold.ttf
- KaTeX_Fraktur-Bold.woff
- KaTeX_Fraktur-Bold.woff2
- KaTeX_Fraktur-Regular.ttf
- KaTeX_Fraktur-Regular.woff
- KaTeX_Fraktur-Regular.woff2
- KaTeX_Main-Bold.ttf
- KaTeX_Main-Bold.woff
- KaTeX_Main-Bold.woff2
- KaTeX_Main-BoldItalic.ttf
- KaTeX_Main-BoldItalic.woff
- KaTeX_Main-BoldItalic.woff2
- KaTeX_Main-Italic.ttf
- KaTeX_Main-Italic.woff
- KaTeX_Main-Italic.woff2
- KaTeX_Main-Regular.ttf
- KaTeX_Main-Regular.woff
- KaTeX_Main-Regular.woff2
- KaTeX_Math-BoldItalic.ttf
- KaTeX_Math-BoldItalic.woff
- KaTeX_Math-BoldItalic.woff2
- KaTeX_Math-Italic.ttf
- KaTeX_Math-Italic.woff
- KaTeX_Math-Italic.woff2
- KaTeX_SansSerif-Bold.ttf
- KaTeX_SansSerif-Bold.woff
- KaTeX_SansSerif-Bold.woff2
- KaTeX_SansSerif-Italic.ttf
- KaTeX_SansSerif-Italic.woff
- KaTeX_SansSerif-Italic.woff2
- KaTeX_SansSerif-Regular.ttf
- KaTeX_SansSerif-Regular.woff
- KaTeX_SansSerif-Regular.woff2
- KaTeX_Script-Regular.ttf
- KaTeX_Script-Regular.woff
- KaTeX_Script-Regular.woff2
- KaTeX_Size1-Regular.ttf
- KaTeX_Size1-Regular.woff
- KaTeX_Size1-Regular.woff2
- KaTeX_Size2-Regular.ttf
- KaTeX_Size2-Regular.woff
- KaTeX_Size2-Regular.woff2
- KaTeX_Size3-Regular.ttf
- KaTeX_Size3-Regular.woff
- KaTeX_Size3-Regular.woff2
- KaTeX_Size4-Regular.ttf
- KaTeX_Size4-Regular.woff
- KaTeX_Size4-Regular.woff2
- KaTeX_Typewriter-Regular.ttf
- KaTeX_Typewriter-Regular.woff
- KaTeX_Typewriter-Regular.woff2
- katex.min.css
- katex.min.js
- smd.min.js
- __init__.py
- apple-touch-icon.png
- assistant_turn_anchors.js
- boot.js
- commands.js
- extension_settings.js
- favicon-192.png
- favicon-32.png
- favicon-512.png
- favicon-512.svg
- favicon.ico
- favicon.svg
- i18n.js
- icons.js
- index.html
- login.js
- manifest.json
- messages.js
- onboarding.js
- outline.js
- panels.js
- pwa-startup.js
- sessions.js
- share.html
- share.js
- style.css
- sw.js
- terminal.js
- ui.js
- workspace.js
- issue5749_captured_session_prefix.json
- issue6611_regeneration_rows.json
- issue6612_update_channel_repro.json
- webui-PR-TARGET-5884-REPRO.md
- cdp_native_scrollbar_test.py
- cdp_scrollbar_behavioral.py
- repro_wakeup_hang.py
- __init__.py
- _aux_client_helpers.py
- _issue6611_fixture.py
- _layout_helpers.py
- _pytest_port.py
- _wakeup_helpers.py
- browser_conversation_lifecycle.py
- browser_historical_transcript_hydration.py
- browser_smoke.py
- conftest.py
- helpers.py
- js_source_extract.py
- test_1003_appearance_autosave.py
- test_1003_preferences_autosave.py
- test_1038_pwa_auth_redirect.py
- test_1044_mermaid_csp_font.py
- test_1045_bfcache_layout_restore.py
- test_1058_adaptive_title_refresh.py
- test_1059_settings_picker_active_state.py
- test_1062_busy_input_modes.py
- test_1079_cron_session_project.py
- test_1325_user_fenced_code.py
- test_1432_newchat_and_1423_profile_input.py
- test_1466_bfcache_inflight_reattach.py
- test_1466_sidebar_cancel_clarify.py
- test_1560_password_env_var_no_op.py
- test_1620_paste_text_with_image.py
- test_1694_prompt_ownership.py
- test_1694_root_saved_running_policy.py
- test_1694_terminal_cleanup_ownership.py
- test_1695_aiagent_import_error_detail.py
- test_1707_workspace_filename_click.py
- test_1710_folder_tooltip.py
- test_1764_context_menu_essentials.py
- test_2111_ios_pwa_bottom_scroll_stutter.py
- test_2235_initial_aux_title.py
- test_2558_reveal_path_translation.py
- test_2735_open_in_vscode.py
- test_2791_model_picker_keyboard_nav.py
- test_3007_approval_card_collapse.py
- test_3230_preserve_manual_session_title.py
- test_3845_keyboard_session_nav.py
- test_3850_settings_search.py
- test_3866_project_context_memory_section.py
- test_4109_notification_focus_existing_tab.py
- test_4167_sidebar_payload_and_scope.py
- test_4170_offline_probe.py
- test_4273_expanduser_and_nullbyte.py
- test_4413_seed_provider_models.py
- test_4504_clarify_stuck_on_expiry.py
- test_465_session_branching.py
- test_4676_project_new_session_shortcuts.py
- test_4737_first_tab_model_catalog_refresh.py
- test_4961_url_query_prefill.py
- test_499_tts_playback.py
- test_5001_active_profile_recovery.py
- test_5021_boot_model_redirect_budget.py
- test_5144_busy_composer_placeholder_hint.py
- test_5145_steer_default.py
- test_5148_settings_search_busy_input_terms.py
- test_5149_settings_search_ranking.py
- test_5167_busy_input_mode_boot.py
- test_5306_subagent_sidebar_flicker.py
- test_5307_subagent_child_transcript.py
- test_5428_stale_client_recovery.py
- test_5455_agent_health_single_flight.py
- test_5552_viewport_anchor_surrogate.py
- test_5682_profile_query_switch.py
- test_5749_anchor_scene_client_prefix_dedupe.py
- test_5774b_atomic_config_writes.py
- test_6673_notification_renotify.py
- test_6728_cron_running_sidebar.py
- test_6808_appearance_bootstrap_no_fabricated_choice.py
- test_7027_state_dir_uid_probe.py
- test_732_gateway_routing_metadata.py
- test_745_code_block_newlines.py
- test_779_html_preview.py
- test_886_ordered_list_numbering.py
- test_a11y_prompt_flyout_hidden_state.py
- test_a11y_transcript_landmarks.py
- test_acp_session_sidebar_visibility.py
- test_active_empty_session_sidebar.py
- test_admin_reload.py
- test_agent_context_docs.py
- test_agent_health_pid_path_fallback.py
- test_agent_health_remote.py
- test_agent_max_turns_parity.py
- test_agent_row_id_replay_order.py
- test_agent_runtime_revision_guard.py
- test_agent_source_dependency_audit.py
- test_anchor_fallback_ownership.py
- test_anchor_prose_incremental_finalize.py
- test_anchor_scene_persistence.py
- test_api_timeout.py
- test_app_titlebar_restore.py
- test_approval_card_layering.py
- test_approval_queue.py
- test_approval_sse.py
- test_approval_unblock.py
- test_async_delegation_webui_bridge.py
- test_atomic_settings_writes.py
- test_atomic_writer_fsync.py
- test_attention_session_events.py
- test_auth.py
- test_auth_oidc.py
- test_auth_password_hash_cache.py
- test_auth_session_persistence.py
- test_auth_sessions.py
- test_auth_settings_safety.py
- test_auto_compression_card.py
- test_auto_compression_terminal_failure.py
- test_auxiliary_models_settings.py
- test_background_process_restart_recovery.py
- test_background_process_wakeup_format.py
- test_background_tasks.py
- test_batch_fixes.py
- test_bg_dedup_reaper_prune.py
- test_bg_task_complete_ab_coexistence.py
- test_bg_task_complete_focus_drop.py
- test_bg_task_complete_loadsession_stream_restart.py
- test_bg_task_complete_ring_buffer.py
- test_bg_task_complete_throttle.py
- test_bg_task_complete_wakeup.py
- test_bg_task_drain_loop_backoff.py
- test_bg_thread_start_lock.py
- test_blank_live_turn_preserve_guard.py
- test_blockquote_rendering.py
- test_bootstrap_discover_agent.py
- test_bootstrap_dotenv.py
- test_bootstrap_foreground.py
- test_bootstrap_python_selection.py
- test_broken_pipe_cascade.py
- test_bugbatch_apr2026.py
- test_bugfix_sweep.py
- test_byok_model_dropdown.py
- test_byte_range_parser.py
- test_cancel_interrupt.py
- test_cancel_stream_owner_guard.py
- test_cancelled_turn_status.py
- test_cancelling_run_not_attachable.py
- test_canonical_session_resolution_rfc.py
- test_catalog_has_provider_compound_ids.py
- test_catppuccin_skin.py
- test_chat_panel_sidebar_resync.py
- test_chat_start_claim_cli_session.py
- test_chat_start_provider_fallback.py
- test_chat_upload_attachment_paths.py
- test_checkpoint_skips_redundant_sidecar_rewrite.py
- test_chinese_locale.py
- test_ci_hygiene.py
- test_clarify_sse.py
- test_clarify_unblock.py
- test_claude_code_profile_agnostic_detail_load.py
- test_claude_code_session_import.py
- test_cli_entry_point.py
- test_cli_only_slash_commands.py
- test_cli_session_tool_metadata.py
- test_cli_sessions_cache_cap.py
- test_cli_sessions_cache_fingerprint.py
- test_client_event_diagnostics.py
- test_cmd_dropdown_scroll_838.py
- test_cmd_idle_fallback.py
- test_commands_endpoint.py
- test_compaction_marker_writeback.py
- test_composer_capture_clear_race.py
- test_composer_chip_lightbox.py
- test_composer_draft_after_send.py
- test_composer_status_timeout.py
- test_compress_status_404_fix.py
- test_compression_phantom_barrier.py
- test_compression_recovery_action.py
- test_compression_snapshot_revision.py
- test_compression_snapshot_runtime_clear.py
- test_configurable_pinned_sessions_limit.py
- test_configured_model_picker_dedup.py
- test_configured_model_picker_provider_routing.py
- test_conftest_network_isolation.py
- test_conftest_server_boot.py
- test_context_history_sanitization.py
- test_context_message_dedup.py
- test_context_message_stable_ids.py
- test_contract_review_gate.py
- test_copilot_provider_model_settings_not_allowlist.py
- test_core_data_loss_cases.py
- test_cors_preflight_allowlist.py
- test_credential_pool_profile_scoping.py
- test_credential_pool_providers.py
- test_cron_delivery_options.py
- test_cron_import_shadowing.py
- test_cron_manual_run_persistence.py
- test_cron_model_override.py
- test_cron_model_provider_picker.py
- test_cron_needs_attention.py
- test_cron_no_agent_edit.py
- test_cron_query_param_validation.py
- test_cron_refresh_button_835.py
- test_cron_run_job_import.py
- test_cron_script_job_ui.py
- test_cron_session_title.py
- test_cron_toast_notifications.py
- test_cross_session_message_load_isolation.py
- test_csp_frame_src_extra.py
- test_css_tooltips.py
- test_csv_table_rendering.py
- test_ctl_bash32_compat.py
- test_ctl_foreign_server_guard.py
- test_ctl_script.py
- test_custom_provider_bare_model_reasoning.py
- test_custom_provider_dict_models.py
- test_custom_provider_display_name.py
- test_custom_provider_model_identity.py
- test_custom_provider_prefix_collisions.py
- test_custom_providers_in_panel.py
- test_cvd3_terminal_local_origin_gate.py
- test_czech_locale.py
- test_dashboard_link_ui.py
- test_dashboard_poll_visibility.py
- test_dashboard_probe.py
- test_data_uri_images.py
- test_default_personality.py
- test_default_workspace_fallback.py
- test_delete_cli_session_delegate_cascade.py
- test_docker_compose_gateway_and_password_forwarding.py
- test_docker_docs_and_readonly.py
- test_docker_env_readonly_vars.py
- test_docker_gpu_runtime_docs.py
- test_docs_gitignore_policy.py
- test_dotted_model_label.py
- test_early_session_title.py
- test_embedded_workspace_terminal.py
- test_empty_partial_activity_restore.py
- test_empty_session_no_disk_write.py
- test_evict_session_agent_active_run_guard.py
- test_excalidraw_inline_embed.py
- test_extension_hooks.py
- test_extension_session_hooks.py
- test_extension_settings_runtime.py
- test_extension_sidecar_proxy.py
- test_extension_status_endpoint.py
- test_extension_theme_registration.py
- test_extension_tts_engine_registration.py
- test_extension_turn_lifecycle.py
- test_extensions_settings_panel.py
- test_file_manager_external_session.py
- test_firefox_sidebar_scroll_stability.py
- test_folder_download.py
- test_font_size_setting.py
- test_french_voices_tts_allowlist.py
- test_full_session_resolve_gate.py
- test_fullwidth_autolink_behaviour.py
- test_gateway_approval_legacy_path.py
- test_gateway_approval_runs_api.py
- test_gateway_lifecycle_controls.py
- test_gateway_read_idle_timeout.py
- test_gateway_sse_reconnect_dedupe.py
- test_gateway_status_agent_health.py
- test_gateway_sync.py
- test_gateway_watcher_profile.py
- test_gateway_yolo_webui_compat.py
- test_geist_contrast_skin.py
- test_git_subprocess_windows_flags.py
- test_glm_5_3_catalog.py
- test_goal_command_js_behaviour.py
- test_goal_command_webui.py
- test_goal_silent_ingress_suppression.py
- test_graphite_skin.py
- test_hard_refresh_session_restore.py
- test_health_restart.py
- test_hidden_tab_server_initiated_turn.py
- test_home_route_html_error.py
- test_ime_composition.py
- test_import_cli_session_lineage.py
- test_index_shell_template_cache.py
- test_inflight_purge_missing_sessions.py
- test_inflight_send_start_race.py
- test_inflight_storage_quota.py
- test_inflight_stream_reuse.py
- test_insights.py
- test_issue1013_handoff_dock.py
- test_issue1014_model_not_found.py
- test_issue1094_provider_bugs.py
- test_issue1095_pasted_images.py
- test_issue1096_copy_buttons.py
- test_issue1097_workspace_drag_drop.py
- test_issue1100_prism_sri.py
- test_issue1103_reasoning_chip_visibility.py
- test_issue1105_ssrf_custom_providers.py
- test_issue1106_custom_providers_models.py
- test_issue1112_csp_google_fonts.py
- test_issue1116_composer_placeholder.py
- test_issue1118_idle_session_retry.py
- test_issue1139_password_remote.py
- test_issue1140_cron_badge_per_job.py
- test_issue1144_session_time_sync.py
- test_issue1154_fenced_code_leak.py
- test_issue1164_env_file_corruption.py
- test_issue1188_fuzzy_match.py
- test_issue1189_openai_codex_detection.py
- test_issue1195_session_profile_routing.py
- test_issue1202_oauth_provider_status.py
- test_issue1217_transcript_compaction.py
- test_issue1228_model_picker_duplicate_ids.py
- test_issue1240_generic_cli_catalog_sync.py
- test_issue1255_refine_selection.py
- test_issue1257_llm_wiki_status.py
- test_issue1298_cancel_and_activity.py
- test_issue1360_streaming_scroll_hardening.py
- test_issue1361_cancel_data_loss.py
- test_issue1362_codex_oauth_onboarding.py
- test_issue1384_local_provider.py
- test_issue1413_li_path_coverage.py
- test_issue1420_lmstudio_provider_env_var.py
- test_issue1426_openrouter_free_tier_live_fetch.py
- test_issue1431_toolsets_chip_responsive.py
- test_issue1436_context_indicator_load_path.py
- test_issue1438_fence_anchoring.py
- test_issue1443_ime_helper_promotion.py
- test_issue1446_glued_heading_lift.py
- test_issue1447_heading_hierarchy.py
- test_issue1458_stability_hardening.py
- test_issue1464_workspace_dropdown_filter.py
- test_issue1488_composer_voice_buttons.py
- test_issue1494_state_db_fd_leak.py
- test_issue1499_keyless_onboarding.py
- test_issue1499_onboarding_probe.py
- test_issue1500_lmstudio_env_var_alignment.py
- test_issue1511_dedup_shared_reference.py
- test_issue1527_lmstudio_base_url_classification.py
- test_issue1538_nous_live_catalog.py
- test_issue1539_provider_removal_dropdown_invalidation.py
- test_issue1560_password_env_var_lock.py
- test_issue1567_nous_picker_capacity_and_symmetry.py
- test_issue1568_duplicate_provider_groups.py
- test_issue1574_cron_profile_lock.py
- test_issue1579_whats_new_link_404.py
- test_issue1611_session_profile_filtering.py
- test_issue1612_renamed_root_profile.py
- test_issue1614_project_profile_filtering.py
- test_issue1617_tps_message_header.py
- test_issue1618_yaml_json_diff_newline_preserve.py
- test_issue1623_sse_heartbeat_alignment.py
- test_issue1624_repair_stale_pending_grace.py
- test_issue1625_local_server_model_id_preservation.py
- test_issue1633_models_cache_version_stamp.py
- test_issue1669_sidebar_scroll_jump_fix.py
- test_issue1680_codex_spark.py
- test_issue1690_scroll_completion.py
- test_issue1697_multi_image_paste.py
- test_issue1699_model_cache_source_fingerprint.py
- test_issue1700_parallel_profile_switch.py
- test_issue1731_upward_scroll_unpins.py
- test_issue1743_model_picker_race.py
- test_issue1765_codex_quota.py
- test_issue1766_quota_topbar.py
- test_issue1771_session_model_switch_sync.py
- test_issue1785_workspace_preview_breadcrumb.py
- test_issue1786_workspace_heading_actions.py
- test_issue1793_file_tree_cruft_filter.py
- test_issue1796_error_toasts.py
- test_issue1800_file_html_interactions.py
- test_issue1806_named_custom_provider_resolution.py
- test_issue1807_codex_provider_card_live_models.py
- test_issue1823_kanban_not_found.py
- test_issue1824_cli_patch_diff_rendering.py
- test_issue1850_csp_connect_src_jsdelivr.py
- test_issue1855_request_diagnostics.py
- test_issue1855_resolve_model_provider_fast_path.py
- test_issue1857_usage_overwrite.py
- test_issue1867_upload_size_preflight.py
- test_issue1879_cross_container_gateway_liveness.py
- test_issue1880_profile_scoped_skills.py
- test_issue1881_phantom_custom_groups.py
- test_issue1894_provider_overlap.py
- test_issue1896_context_length_fallback_args.py
- test_issue1897_profile_switch_agent_cache.py
- test_issue1908_docker_hardening.py
- test_issue1909_csp_enforcement.py
- test_issue1909_csp_report_only.py
- test_issue1909_csrf_token.py
- test_issue1910_login_attempt_persistence.py
- test_issue1913_workspace_prefix_sentinel.py
- test_issue1937_endless_scroll_jumpstart_race.py
- test_issue1955_worktree_sessions.py
- test_issue1955_worktree_ui_static.py
- test_issue1968_mcp_profile_discovery.py
- test_issue1989_profile_skill_count.py
- test_issue2023_hermes_home_skill_modules.py
- test_issue2024_env_lock_skill_imports.py
- test_issue2025_xiaomi_env_key.py
- test_issue2028_compression_anchor_helpers.py
- test_issue2031_cron_once_visibility.py
- test_issue2057_worktree_lifecycle.py
- test_issue2057_worktree_status.py
- test_issue2057_worktree_ui_static.py
- test_issue2066_stale_sidebar_spinner.py
- test_issue2098_logs_i18n.py
- test_issue2124_outline_panel.py
- test_issue2147_profile_concept_help.py
- test_issue2147_profile_workspace_copy.py
- test_issue2157_sessions_list_stale_stream_state.py
- test_issue2177_nvidia_prefix_preservation.py
- test_issue2184_fork_from_here_absolute_index.py
- test_issue2211_workspace_panel_reopen.py
- test_issue2223_compression_no_rename.py
- test_issue2232_legacy_toolsets.py
- test_issue2233_sqlite_connection_leak.py
- test_issue2237_docker_chown_git_objects.py
- test_issue2245_mixed_case_provider_models.py
- test_issue2246_question_jump.py
- test_issue2262_compression_marker_timeout_ui.py
- test_issue2271_keyless_custom_provider.py
- test_issue2289_cron_detail_expansion.py
- test_issue2305_profile_create_seeds_skills.py
- test_issue2341_pending_user_reattach.py
- test_issue2351_cli_session_source_filter.py
- test_issue2386_localstorage_quota.py
- test_issue2389_storage_pressure.py
- test_issue2399_provider_config_flags.py
- test_issue2403_interim_collapse.py
- test_issue2419_cache_usage_display.py
- test_issue2428_table_pipe_protection.py
- test_issue2453_agent_source_boundary.py
- test_issue2454_active_session_spinner.py
- test_issue2462_theme_i18n.py
- test_issue2472_fork_from_here_messaging.py
- test_issue2481_selected_text_reply.py
- test_issue2508_session_pin_cap.py
- test_issue2513_custom_provider_remote_models.py
- test_issue2518_active_provider_fallback.py
- test_issue2518_new_session_inflight.py
- test_issue2540_models_endpoint_error.py
- test_issue2542_anonymous_custom_endpoint.py
- test_issue2543_named_context_session_switch.py
- test_issue2545_xai_oauth_provider.py
- test_issue2551_project_picker_cache_refresh.py
- test_issue2554_workspace_tree_file_indent.py
- test_issue2565_reasoning_accumulation.py
- test_issue2569_model_provider_picker.py
- test_issue2572_csrf_diagnostics.py
- test_issue2592_partial_dedupe.py
- test_issue2613_render_cache_signature.py
- test_issue2628_cli_sessions_perf.py
- test_issue2655_frontend.py
- test_issue2661_2629_frontend.py
- test_issue2679_hide_suggestions.py
- test_issue2695_packaged_runtime_layout.py
- test_issue2698_isolated_hermes_home.py
- test_issue2713_streaming_segment_flush.py
- test_issue2720_bedrock_model_picker.py
- test_issue2762_state_sync_profile_kwarg.py
- test_issue2768_workspace_links.py
- test_issue2775_log_request.py
- test_issue2785_gateway_cron_guidance.py
- test_issue2821_session_pin_state_sync.py
- test_issue2823_large_markdown_preview.py
- test_issue2840_windows_hermes_home_defaults.py
- test_issue2841_show_cron_sessions_toggle.py
- test_issue2848_checkpoint_profile.py
- test_issue2863_session_index_prime.py
- test_issue2867_tool_output_visual_distinction.py
- test_issue2881_workspace_chat_links.py
- test_issue2883_clarify_padding.py
- test_issue2901_csp_connect_extra.py
- test_issue2905_windows_home_migration_safety.py
- test_issue2914_truncation_watermark.py
- test_issue2929_settings_max_tokens.py
- test_issue2931_edge_tts_endpoint.py
- test_issue2941_wiki_browse.py
- test_issue2965_streaming_sessiondb_profile_home.py
- test_issue2966_markdown_table_enhancer.py
- test_issue2977_use_command.py
- test_issue2998_panel_primary_contrast.py
- test_issue3012_3006_docker_docs.py
- test_issue3019_cron_project_sessions.py
- test_issue3023_safe_session_id_validators.py
- test_issue3040_reattach_focus_gate.py
- test_issue3040_reattach_invariant.py
- test_issue3066_disabled_read_profile.py
- test_issue3066_profile_skill_disabled_state.py
- test_issue3100_profile_toolsets_affordance.py
- test_issue3103_sse_no_connection_close.py
- test_issue3145_opencode_shared_runtime_key.py
- test_issue3162_ensure_messages_loaded.py
- test_issue3172_cron_session_limit.py
- test_issue3194_gateway_configured_banner.py
- test_issue3225_rename_sync.py
- test_issue3227_help_tab.py
- test_issue3238_orphaned_cli_sidecar_prune.py
- test_issue3242_3214_i18n_tooltips.py
- test_issue3250_upward_scroll_intent_window.py
- test_issue3256_context_length_default_only_guard.py
- test_issue3260_self_hosted_providers_settings.py
- test_issue3262_artifact_path_canonicalization.py
- test_issue3283_profiles_config_import_order.py
- test_issue3293_title_language_drift.py
- test_issue3294_profile_toolset_scoping.py
- test_issue3306_loadsession_carry_forward.py
- test_issue3319_pinned_scroll_jump.py
- test_issue3329_artifact_tool_metadata_guard.py
- test_issue3337_workspace_preview_highlight.py
- test_issue3340_persistent_state_toasts.py
- test_issue3346_legacy_dedup.py
- test_issue3360_multi_slash_model_collision.py
- test_issue3368_model_prefix_shadowing.py
- test_issue3397_transparent_stream_prose_segments.py
- test_issue3401_deep_review_fixes.py
- test_issue3402_workspace_os_import.py
- test_issue3402_workspace_tree_move.py
- test_issue3405_profile_provider_resolution.py
- test_issue3407_sigpipe_ignore.py
- test_issue341.py
- test_issue3411_workspace_tree_os_drop.py
- test_issue342.py
- test_issue3424_composer_drop_hint_polish.py
- test_issue3429_uri_scheme_model_ids.py
- test_issue3429_uri_scheme_model_label.py
- test_issue3433_composer_path_completion.py
- test_issue3455_think_block_extraction.py
- test_issue3460_cron_session_unread.py
- test_issue3468_duplicate_after_compression.py
- test_issue347.py
- test_issue3470_touch_unpin_streaming_scroll.py
- test_issue3479_ios_stream_scroll_jump.py
- test_issue3506_memory_and_watcher.py
- test_issue3510_elevenlabs_tts.py
- test_issue3539_language_dropdown_all_locales.py
- test_issue3545_streaming_scroll_cue.py
- test_issue3546_provider_refresh_route.py
- test_issue3548_sessiondb_self_heal.py
- test_issue357.py
- test_issue3571_saved_prompts.py
- test_issue3582_tts_content_length.py
- test_issue3583_orphaned_tool_calls.py
- test_issue3585_cron_session_overflow.py
- test_issue3586_cli_session_source_label.py
- test_issue3587_intermediate_reasoning.py
- test_issue3592_thinking_settlement.py
- test_issue3595_activity_default_expanded.py
- test_issue3597_update_banner_position.py
- test_issue3599_inline_thinking_extraction.py
- test_issue3603_external_session_import_gate.py
- test_issue3623_profile_visibility.py
- test_issue3635_profile_chip_active.py
- test_issue3660_context_window_stale.py
- test_issue3668_prompt_card_reshow_on_switch.py
- test_issue3691_model_picker_show_all.py
- test_issue3696_session_attention_scope.py
- test_issue3700_push_to_talk.py
- test_issue3709_thinking_double_render.py
- test_issue3717_context_length_provider_overrides.py
- test_issue3718_live_models_custom_probe.py
- test_issue3737_explicit_pick_client_wiring.py
- test_issue3746_session_move_delete_timeout.py
- test_issue3750_lmstudio_probe_auth.py
- test_issue3762_importable_rows_schema_guard.py
- test_issue3787_probe_pool.py
- test_issue3797_kanban_cli_parity.py
- test_issue3800_compaction_summary_length.py
- test_issue3802_delete_session_journals.py
- test_issue3820_chat_activity_display_mode.py
- test_issue3825_oidc_auth.py
- test_issue3831_watermark_clear.py
- test_issue3833_workspace_refresh.py
- test_issue3842_dismissible_error_toast.py
- test_issue3851_jump_to_question_mobile.py
- test_issue3869_thinking_dots.py
- test_issue3870_render_user_markdown_cache_reset.py
- test_issue3875_blank_transcript_failsafe.py
- test_issue3875_recovery_anchor_dedup.py
- test_issue3877_midstream_flicker.py
- test_issue3887_index_prime.py
- test_issue3895_opencode_go_model_picker.py
- test_issue3915_state_dir_warning.py
- test_issue3916_external_refresh_poll.py
- test_issue3924_cjk_slash_autocomplete.py
- test_issue3928_models_budget_fallback.py
- test_issue3929_credential_pool_classification.py
- test_issue3929_error_preserves_partial.py
- test_issue3929_partial_work_recovery.py
- test_issue3929_process_wakeup_pause.py
- test_issue3930_source_filter_pushdown.py
- test_issue3947_tasks_cross_profile_visibility.py
- test_issue3952_escape_blur_composer.py
- test_issue3957_profile_providers_models.py
- test_issue3958_reasoning_post_session_context.py
- test_issue3959_model_suffix_dedup.py
- test_issue3975_cron_reply_materialization.py
- test_issue3983_browser_tts_watchdog.py
- test_issue3987_imported_session_titles.py
- test_issue3988_show_cli_sessions_default.py
- test_issue3993_session_load_self_heal.py
- test_issue3994_materialize_session.py
- test_issue3996_sse_visibility.py
- test_issue4001_inline_code_link_label.py
- test_issue4002_shutdown_i18n_code_spans.py
- test_issue4006_auto_scroll_follow_default.py
- test_issue401.py
- test_issue4026_collapsible_paused_crons.py
- test_issue4029_stale_completion_age_gate.py
- test_issue4039_panel_document_title.py
- test_issue4041_approval_poll_busy_dip.py
- test_issue4042_typing_lag_autoresize.py
- test_issue4053_external_skill_categories.py
- test_issue4064_worklog_mobile_overflow.py
- test_issue4067_import_cli_cross_profile_guard.py
- test_issue4075_mermaid_lightbox.py
- test_issue4086_document_title_owner.py
- test_issue4087_skill_bundles.py
- test_issue4151_pwa_focus_sse.py
- test_issue4154_sidebar_issue_numbers.py
- test_issue4164_bound_non_git_project_context_walk.py
- test_issue4183_regenerate_materialize.py
- test_issue4251_wakeup_model_picker_race.py
- test_issue4283_recovered_context_replay.py
- test_issue4295_midstream_scroll_anchor.py
- test_issue4295_scroll_pin_reentry.py
- test_issue4300_gateway_approval_notice.py
- test_issue4324_photon_phantom_providers.py
- test_issue4325_virtualization_toggle.py
- test_issue4346_vscroll_footer_jitter.py
- test_issue4346_vscroll_recycled_anchor_jumpback.py
- test_issue4356_no_git_update_check.py
- test_issue4360_generic_pool_quota.py
- test_issue4385_cron_archive_reappears.py
- test_issue4391_settings_shortcut.py
- test_issue4449_state_dir_contract.py
- test_issue4465_builtin_personalities.py
- test_issue4470_kanban_task_editor_fields.py
- test_issue4479_gateway_approval_history.py
- test_issue4490_presession_toolsets.py
- test_issue4496_plugin_badge_state.py
- test_issue4536_service_tier.py
- test_issue4539_transparent_tool_settle.py
- test_issue4553_mobile_transcript_overflow.py
- test_issue4571_mic_insecure_origin.py
- test_issue4582_workspace_escape_navigation.py
- test_issue4586_named_profile_not_isolated.py
- test_issue4598_composer_control_visibility.py
- test_issue4622_settled_toolcard_body.py
- test_issue4622_tool_card_restore_guard.py
- test_issue4626_windows_restart_no_console.py
- test_issue4633_crash_visibility.py
- test_issue4638_lineage_top_n_cap.py
- test_issue4650_reasoning_chip_no_storm.py
- test_issue4650_yaml_config_cache.py
- test_issue4658_transparent_collapsed_preview.py
- test_issue4662_profile_switch_skeleton_behaviour.py
- test_issue4662_profile_switch_skeleton_static.py
- test_issue4662_reload_config_mtime_cache.py
- test_issue4662_sidebar_redaction_read_once.py
- test_issue467_yolo_mode_toggle.py
- test_issue4685_post_compression_context_metering.py
- test_issue4696_ios_tap_delay.py
- test_issue470.py
- test_issue4700_agent_dir_discovery.py
- test_issue4702_portrait_open_scroll_bottom.py
- test_issue4705_update_summary_expand.py
- test_issue4713_plugins_badge_and_sort.py
- test_issue4714_claude_code_visibility_toggle.py
- test_issue4717_empty_profile_skeleton.py
- test_issue4718_claude_code_parse_cache.py
- test_issue4720_done_scroll_jump_first_message.py
- test_issue4728_new_chat_default_model.py
- test_issue4729_reasoning_sse_coalesce.py
- test_issue4731_mobile_message_actions.py
- test_issue4746_extension_gallery.py
- test_issue4749_steer_reason_and_recovery.py
- test_issue4752_collapsed_card_shows_result.py
- test_issue4753_desktop_background_notifications.py
- test_issue4754_approval_dismiss_persist.py
- test_issue4755_profile_default_workspace.py
- test_issue4756_session_visit_model_refresh.py
- test_issue4757_macos_drag_drop_mime.py
- test_issue4759_parallel_sidebar_boot_fetch.py
- test_issue4761_voice_mode_config.py
- test_issue4765_sessions_lru_eviction.py
- test_issue4766_sidebar_source_pushdown.py
- test_issue4768_cron_module_missing.py
- test_issue477.py
- test_issue4770_anthropic_oauth_detection.py
- test_issue4771_gateway_approval_failure_ui.py
- test_issue4771_local_approval_regression.py
- test_issue4775_sidebar_hidden_zero_message_pushdown.py
- test_issue4783_profile_skills_mtime_cache.py
- test_issue4793_dom_recycle_hardening.py
- test_issue4811_reconnect_chronology.py
- test_issue4812_session_sse_contract_rfc.py
- test_issue4812_session_sse_stream.py
- test_issue4813_cron_model_bare_name.py
- test_issue4814_mermaid_toolbar.py
- test_issue4836_manual_compression_recovery.py
- test_issue483_inline_diff_viewer.py
- test_issue4842_cli_cache_streaming.py
- test_issue4842_cli_sessions_streaming_freeze.py
- test_issue4842_cron_projection_perf.py
- test_issue4843_pet_webui_command.py
- test_issue484_json_tree_viewer.py
- test_issue4856_android_scroll_regression.py
- test_issue4856_mobile_transcript_unscrollable.py
- test_issue486_487.py
- test_issue4875_recovery_prompt_filter.py
- test_issue4877_fresh_blank_boot_workspace_bind.py
- test_issue487b.py
- test_issue4891_detail_header_visibility.py
- test_issue4926_shell_full_command.py
- test_issue4927_durable_tool_snippet.py
- test_issue4928_tool_arg_content_cap.py
- test_issue492_workspace_reorder.py
- test_issue4930_stale_turn_duration.py
- test_issue4945_markdown_table_copy.py
- test_issue4948_local_stale_approval.py
- test_issue4970_stream_done_shrink_regression.py
- test_issue4973_diagnostics_watchdog.py
- test_issue4982_openai_tts.py
- test_issue4985_orphaned_webui_zero_message.py
- test_issue500_message_list_virtualization.py
- test_issue500_session_list_virtualization.py
- test_issue5057_moa_webui_route.py
- test_issue5060_boot_composer_preserve.py
- test_issue5099_ctrl_k_text_input_guard.py
- test_issue5121_provider_auth_terminal_error.py
- test_issue5127_process_wakeup_bare_model.py
- test_issue5130_cron_profile_snapshot.py
- test_issue5132_state_db_override_top_n_cap.py
- test_issue5139_gateway_approval_offline_notice.py
- test_issue513_wsl_autostart.py
- test_issue5141_terminal_failure_transcript_evaluator.py
- test_issue5169_profile_active_default_workspace.py
- test_issue5175_macos_launchd_git.py
- test_issue5177_hidden_tab_blank_gap.py
- test_issue5196_windows_safe_replace.py
- test_issue5204_redactor_memoization_contract.py
- test_issue5210_http_worker_bound.py
- test_issue5220_config_reload_stampede.py
- test_issue5224_terminal_error_transcript_preserve.py
- test_issue5231_default_kanban_dispatch.py
- test_issue5250_settings_search_dropdown_escape.py
- test_issue5269_gateway_approval_docs.py
- test_issue5270_cli_webui_continuity.py
- test_issue5273_active_done_viewed_sync.py
- test_issue5294_mobile_dictation_continuity.py
- test_issue5311_opencode_go_static_models.py
- test_issue5331_index_only_ghost_cleanup.py
- test_issue5334_verification_stop_leak.py
- test_issue5339_restart_stale_user_dedup.py
- test_issue5345_clarify_toast_and_interrupt_provenance.py
- test_issue5347_sidebar_action_menu_scroll.py
- test_issue5364_skills_stats_thundering_herd.py
- test_issue5367_transparent_live_row_reconcile.py
- test_issue5379_cron_project_optin.py
- test_issue538_mcp_management.py
- test_issue540_workspace_office_documents.py
- test_issue540_workspace_office_preview.py
- test_issue5420_profile_switch_session_new.py
- test_issue5435_tts_voice_preferences.py
- test_issue5455_lineage_readonly_reads.py
- test_issue5455_listing_readonly_connection.py
- test_issue5472_preserve_draft_on_failed_send.py
- test_issue5497_preferences_model_picker.py
- test_issue5501_session_list_retry_affordance.py
- test_issue5514_composer_grow_scroll_pin.py
- test_issue5525_mermaid_icon_distinct.py
- test_issue5532_clear_truncation_watermark.py
- test_issue5532_session_clear_state_db_replay.py
- test_issue5533_preview_copy_file_path.py
- test_issue5539_mobile_approval_card_height.py
- test_issue5543_background_memory_commit.py
- test_issue5545_three_panel_layout.py
- test_issue5567_model_provider_contamination.py
- test_issue5567_profile_home_override.py
- test_issue5570_clear_backup_recovery.py
- test_issue5572_messaging_clear_semantics.py
- test_issue5578_login_next_nesting.py
- test_issue5637_mobile_scroll_clamp_jumpback.py
- test_issue5637_stale_anchor_guard.py
- test_issue5638_user_row_intrinsic_height_collapse.py
- test_issue5641_table_whitespace.py
- test_issue5657_filetree_scroll_preserve.py
- test_issue5671_workspace_switcher_a11y.py
- test_issue5686_completed_output_text.py
- test_issue569_579.py
- test_issue5700_worklog_event_timestamps.py
- test_issue570_permission.py
- test_issue572.py
- test_issue5720_reasoning_owner.py
- test_issue5731_session_model_provider_repair.py
- test_issue5744_nonvirtual_userrow_collapse_jumpback.py
- test_issue5748_model_picker_selected_badge.py
- test_issue5749_transparent_stream_prefix_dedupe.py
- test_issue5759_composer_focus_shortcut.py
- test_issue5760_code_block_containment.py
- test_issue5839_lazy_worklog_render.py
- test_issue5854_anchor_scene_split.py
- test_issue5871_redaction_awareness_prompt.py
- test_issue5924_post_failure_recovery_model_pick.py
- test_issue5932_kanban_board_default_workdir.py
- test_issue5932_kanban_board_default_workdir_layout.py
- test_issue5940_terminal_error_surfaced.py
- test_issue5941_errored_turn_response_visible.py
- test_issue5954_empty_boot_reasoning_chip.py
- test_issue5959_manual_update_i18n.py
- test_issue5960_cron_unread_profile_scope.py
- test_issue5966_transparent_stream_lazy_dom.py
- test_issue5989_custom_proxy_picker_dedup.py
- test_issue6006_ttft_instrumentation.py
- test_issue6008_sidebar_stop_failure_ui.py
- test_issue6017_approve_once_no_persist.py
- test_issue6022_worktree_config_default.py
- test_issue6022_worktree_ui_static.py
- test_issue603_provider_categories.py
- test_issue604_all_providers_model_picker.py
- test_issue6066_workspace_sort.py
- test_issue6066_workspace_sort_api_payload.py
- test_issue6066_workspace_sort_layout.py
- test_issue6067_artifact_paths.py
- test_issue6068_used_model_footer.py
- test_issue607.py
- test_issue6080_model_picker_reparent.py
- test_issue609.py
- test_issue6131_provider_aware_model_selection.py
- test_issue616.py
- test_issue6160_hide_empty_state_panel.py
- test_issue6174_public_share_media_embed.py
- test_issue617_cron_profile_selector.py
- test_issue6195_bare_id_ambiguous_no_revert.py
- test_issue6209_data_image_renderer.py
- test_issue6220_id_linked_tool_anchor_hydration.py
- test_issue6240_windows_skill_symlink_fallback.py
- test_issue632.py
- test_issue6335_catalog_admission_regression.py
- test_issue634.py
- test_issue6414_programmatic_scroll_user_intent.py
- test_issue6419_pending_user_reconnect_order.py
- test_issue644.py
- test_issue646.py
- test_issue6481_verification_evidence_phantom.py
- test_issue6498_memory_config_gates.py
- test_issue6571_identical_retry_settlement.py
- test_issue6572_loadsession_compression_cleanup.py
- test_issue660.py
- test_issue6611_regenerate_browser.py
- test_issue6611_regenerate_turn_identity.py
- test_issue6611_regeneration_authority.py
- test_issue6611_regeneration_settlement.py
- test_issue6611_regeneration_transaction.py
- test_issue6612_update_channel_autosave.py
- test_issue6623_cancel_owner_race.py
- test_issue6626_402_ttl_parity.py
- test_issue6672_workspace_switch_system_prompt.py
- test_issue6722_provider_qualified_model_leak.py
- test_issue673.py
- test_issue6751_api_content_agent_replay.py
- test_issue6757_redaction_and_runner_sse_fixes.py
- test_issue677.py
- test_issue6814_title_generation_enabled_gate.py
- test_issue6819_auto_scroll_follow_persistence.py
- test_issue6853_docker_agents_context.py
- test_issue6867_artifacts_settled_recovery.py
- test_issue6892_sync_title_coverage.py
- test_issue6906_kanban_modal_height_cap.py
- test_issue6911_intentional_shrink_backup.py
- test_issue691_model_health_table.py
- test_issue6935_persist_user_timestamp_kwarg.py
- test_issue693_system_health_panel.py
- test_issue6964_title_dedup.py
- test_issue696_mcp_visibility_panel.py
- test_issue697_mcp_tool_inventory.py
- test_issue6999_session_updated_coalesce.py
- test_issue6999_turn_context_virtual_gap.py
- test_issue716_agent_heartbeat.py
- test_issue7182_profile_model_tag_truncation.py
- test_issue734_message_windowing.py
- test_issue739_652_653.py
- test_issue744.py
- test_issue749_profile_create_model_picker.py
- test_issue765_streaming_persistence.py
- test_issue781.py
- test_issue789.py
- test_issue798.py
- test_issue803.py
- test_issue840_slash_echo.py
- test_issue852_thinking_card_mirror.py
- test_issue854_live_model_prefix.py
- test_issue856_active_session_read_state.py
- test_issue856_background_completion_unread.py
- test_issue856_pinned_indicator_layout.py
- test_issue856_session_streaming_state.py
- test_issue893_cancel_preserves_partial.py
- test_issue895_894_nous_prefix.py
- test_issue926_hindsight_docker_dependency.py
- test_issue_1584_multitab_sse.py
- test_issue_1932_goal_hook_unrelated_turns.py
- test_issue_branch_context_at_fork.py
- test_issue_code_syntax_highlight.py
- test_issue_edit_regenerate_absolute_keep_count.py
- test_issue_legacy_first_click_repro.py
- test_issue_neuralwatt_env_key.py
- test_issue_new_chat_draft_restore.py
- test_issue_progress_echo_dedupe.py
- test_issue_t16551f61_auth_token_churn_fingerprint.py
- test_issue_windows_git_version_detection.py
- test_issues_373_374_375.py
- test_issues_853_857.py
- test_issues_907_908_909_model_dropdown.py
- test_japanese_locale.py
- test_jsyaml_vendored_assets.py
- test_jump_to_answer_scroll_settle.py
- test_kanban_board_ui.py
- test_kanban_bridge.py
- test_kanban_ui_static.py
- test_kanban_view_toggle.py
- test_katex_streaming.py
- test_katex_vendored_assets.py
- test_korean_locale.py
- test_language_precedence.py
- test_large_session_fuzzy_duplicate_bound.py
- test_large_text_paste_attachment.py
- test_layout_helpers.py
- test_live_activity_timeline.py
- test_live_anchor_progress_echo.py
- test_live_anchor_stable_run_identity.py
- test_live_models_ttl_cache.py
- test_live_rebuild_budget_warn_rate_limit.py
- test_live_stream_ux.py
- test_live_to_final_anchor_visible_order.py
- test_live_tool_callback_events.py
- test_login_locale.py
- test_login_locale_parity.py
- test_logs_endpoint.py
- test_logs_ui_static.py
- test_manual_title_regenerate_timeout.py
- test_markdown_source_code_blocks_wrap.py
- test_markdown_table_cell_spacing.py
- test_mcp_server.py
- test_mcp_tools_list_overflow.py
- test_media_etag_revalidation.py
- test_media_inline.py
- test_media_message_snapshots.py
- test_memory_session_lifecycle_generation.py
- test_memory_skill_badge.py
- test_memory_write_symlink_guard.py
- test_merge_append_only_normalization_cache.py
- test_merge_backfill_perf_optimization.py
- test_merge_key_tool_calls.py
- test_message_timestamp_stamping.py
- test_messages_stale_stream_source_scope.py
- test_metadata_save_wipe_1558.py
- test_metering_session_lifecycle.py
- test_minimax_provider.py
- test_moa_model_picker_provider.py
- test_mobile_layout.py
- test_mobile_markdown_wrapping.py
- test_mobile_reload_compression_recovery.py
- test_mobile_scroll_jank.html
- test_mobile_sidebar_header_icon_align.py
- test_mobile_titlebar_session_actions.py
- test_model_cache_metadata.py
- test_model_default_boot_precedence.py
- test_model_picker_badges.py
- test_model_picker_escaping.py
- test_model_picker_subgroups.py
- test_model_resolver.py
- test_model_scope_copy.py
- test_model_selection_refresh_persistence.py
- test_models_dev_reasoning.py
- test_msg_footer_wrap.py
- test_native_image_attachments.py
- test_new_chat_default_model_frontend.py
- test_nix_flake_module_source.py
- test_none_providers_config_guard.py
- test_norm_model_id_trailing_empty_guard.py
- test_notify_on_complete_webui.py
- test_nous_portal_routing.py
- test_numpad_enter_submit.py
- test_offline_banner.py
- test_offline_banner_theme.py
- test_offline_soft_recovery.py
- test_older_history_viewport_preservation.py
- test_ollama_model_chip_label_regression.py
- test_onboarding_existing_config.py
- test_onboarding_mvp.py
- test_onboarding_network.py
- test_onboarding_oauth_single_flight.py
- test_onboarding_static.py
- test_openai_api_provider_alias.py
- test_opencode_providers.py
- test_options_content_length.py
- test_optionz_liveview_perf.py
- test_orphaned_tool_messages.py
- test_parallel_session_switch.py
- test_partial_bloat_fix.py
- test_passkey_auth.py
- test_passkey_login_content_length.py
- test_pdf_html_preview.py
- test_performance_polling_hardening.py
- test_pin_limit_lineage_visibility.py
- test_pinned_tail_midstream_jitter.py
- test_plugin_model_providers.py
- test_plugins_panel.py
- test_polish_locale.py
- test_pr1318_context_length_fallback.py
- test_pr1339_fallback_providers_list.py
- test_pr1341_context_window_persistence.py
- test_pr1350_sse_atomic_subscribe.py
- test_pr1350_sse_notify_correctness.py
- test_pr1355_sse_handler_no_deadlock.py
- test_pr1366_finalize_thinking_card_guard.py
- test_pr1370_lineage_metadata_perf_and_orphan.py
- test_pr1375_partial_tool_calls_sanitize.py
- test_pr1441_ime_safari_guard.py
- test_pr1445_opus_followups.py
- test_pr1721_rtl_salvage.py
- test_pr1947_same_model_multiple_custom_providers.py
- test_pr1970_lmstudio_base_url_fallback.py
- test_pr2520_extract_attachment_dir.py
- test_process_wakeup_card_rendering.py
- test_process_wakeup_rendering.py
- test_process_wakeup_synthetic.py
- test_profile_default_workspace_823.py
- test_profile_dropdown_fast_open.py
- test_profile_env_isolation.py
- test_profile_path_security.py
- test_profile_skills_stats.py
- test_profile_switch_1200.py
- test_profile_switch_ux.py
- test_profile_terminal_env.py
- test_profiles_route_endpoint.py
- test_project_chip_ui.py
- test_provider_cost_budget.py
- test_provider_cost_chart_ui.py
- test_provider_cost_history.py
- test_provider_management.py
- test_provider_mismatch.py
- test_provider_quota_status.py
- test_provider_sort_order.py
- test_pure_prose_turn_not_worklog.py
- test_pwa_manifest_csp.py
- test_pwa_manifest_sw.py
- test_pwa_notification_controls.py
- test_pwa_sidebar_swipe.py
- test_pycache_purge.py
- test_pytest_config_isolation.py
- test_pytest_execv_guard.py
- test_pytest_state_isolation.py
- test_quota_chip_settings_toggle.py
- test_quote_entity_mangling.py
- test_raster_data_uri_redaction.py
- test_rate_limit_map_prune.py
- test_raw_audio_upload.py
- test_readme_compat_section.py
- test_real_steer.py
- test_reasoning_chip_btw_fixes.py
- test_reasoning_chip_js_behaviour.py
- test_reasoning_content_replay.py
- test_reasoning_effort_model_capabilities.py
- test_reasoning_show_hide.py
- test_recovered_journal_context.py
- test_regressions.py
- test_remote_terminal_workspace.py
- test_renderer_comprehensive.py
- test_renderer_js_behaviour.py
- test_repair_workspace_user_turns.py
- test_request_diagnostics_cache.py
- test_resolve_model_provider_free_suffix.py
- test_rollback_diff_symlink_disclosure.py
- test_rollback_restore_symlink_containment.py
- test_route_approvals_extraction.py
- test_route_session_list_cache_extraction.py
- test_routes_file_api_toctou.py
- test_ruff_forward_lint.py
- test_run_journal.py
- test_run_journal_frontend_static.py
- test_run_journal_routes.py
- test_run_journal_seq_cache.py
- test_run_journal_streaming_static.py
- test_run_journal_writer_lock_evict.py
- test_run_lifecycle_health.py
- test_runner_client.py
- test_runtime_adapter_seam.py
- test_russian_locale.py
- test_scheduled_jobs_profile_isolation.py
- test_security_redaction.py
- test_security_review_fixes.py
- test_selected_context_user_render_runtime.py
- test_server_port_exclusivity.py
- test_service_worker_api_cache.py
- test_session_action_menu_focus.py
- test_session_action_menu_regression.py
- test_session_active_profile_authorization.py
- test_session_attention_badges.py
- test_session_attention_sound.py
- test_session_aware_vision_routing.py
- test_session_batch_select.py
- test_session_cache_ownership.py
- test_session_channel_option_x.py
- test_session_cli_scan_fast_path.py
- test_session_copy_link_action.py
- test_session_cross_tab_sync.py
- test_session_db_sidecar_reconciliation.py
- test_session_discoverability_audit.py
- test_session_discoverability_invariants.py
- test_session_discoverability_repair.py
- test_session_display_resolver_no_live_rebuild.py
- test_session_duplicate.py
- test_session_duplicate_edit.py
- test_session_duplicate_fields.py
- test_session_endless_scroll.py
- test_session_events.py
- test_session_events_http_integration.py
- test_session_export_html_palette.py
- test_session_export_subpath_urls.py
- test_session_import_cli_fallback_model.py
- test_session_import_cli_sse_refresh.py
- test_session_import_workspace_validation.py
- test_session_index.py
- test_session_index_lock_window.py
- test_session_index_parse_bytes.py
- test_session_jump_buttons.py
- test_session_lineage_collapse.py
- test_session_lineage_full_transcript.py
- test_session_lineage_metadata_api.py
- test_session_lineage_report.py
- test_session_list_long_history_perf.py
- test_session_lost_response_regression.py
- test_session_message_window_renderable_tail.py
- test_session_metadata_cli_lookup.py
- test_session_metadata_fast_path.py
- test_session_model_resolution_on_load.py
- test_session_msg_limit_ceiling.py
- test_session_ops.py
- test_session_public_share.py
- test_session_public_share_static.py
- test_session_recovery_api.py
- test_session_recovery_audit.py
- test_session_rename_lifecycle.py
- test_session_rotate_url_sync.py
- test_session_runtime_ownership_invariants.py
- test_session_save_empty_pending_guard.py
- test_session_save_mode.py
- test_session_search_bfcache_822.py
- test_session_sidebar_cache.py
- test_session_sidebar_relative_time.py
- test_session_sidebar_resilience.py
- test_session_sidecar_repair.py
- test_session_static_assets.py
- test_session_summary_redaction.py
- test_session_switch_busy_race.py
- test_session_switch_performance.py
- test_session_tail_payload.py
- test_session_title_regenerate_controls.py
- test_session_todo_state_route.py
- test_session_touch_actions.py
- test_session_truncate_alignment_performance.py
- test_session_truncate_keep_count_validation.py
- test_session_unread_dot_on_visit.py
- test_sessions_search_depth_validation.py
- test_sessions_search_profile_scope.py
- test_settings_appearance_defaults_honoured.py
- test_settings_navigation_and_detail_refresh.py
- test_shift_enter_send_key.py
- test_shutdown_audit_logging.py
- test_sidebar_collapse_toggle.py
- test_sidebar_completion_dedupe.py
- test_sidebar_first_turn_visibility.py
- test_sidebar_pin_immediate_reorder.py
- test_sidebar_search_highlights.py
- test_sidebar_session_partition.py
- test_sidebar_tab_order.py
- test_sidebar_tab_visibility.py
- test_sidebar_tooltips.py
- test_sidebar_unassigned_filter.py
- test_sienna_skin.py
- test_silent_control_suppression.py
- test_silent_failure_detection.py
- test_simplified_tool_calling_setting.py
- test_skill_detail_error_guard.py
- test_skill_detail_markdown_styling.py
- test_skill_save_symlink_guard.py
- test_skill_usage.py
- test_skills_category_collapse.py
- test_skills_toggle.py
- test_smd_media_in_stream.py
- test_smooth_text_fade.py
- test_soul_memory.py
- test_spanish_locale.py
- test_sprint1.py
- test_sprint10.py
- test_sprint11.py
- test_sprint12.py
- test_sprint13.py
- test_sprint14.py
- test_sprint15.py
- test_sprint16.py
- test_sprint17.py
- test_sprint19.py
- test_sprint2.py
- test_sprint20.py
- test_sprint20b.py
- test_sprint23.py
- test_sprint26.py
- test_sprint27.py
- test_sprint28.py
- test_sprint29.py
- test_sprint3.py
- test_sprint30.py
- test_sprint31.py
- test_sprint32.py
- test_sprint33.py
- test_sprint34.py
- test_sprint35.py
- test_sprint36.py
- test_sprint37.py
- test_sprint38.py
- test_sprint39.py
- test_sprint4.py
- test_sprint40.py
- test_sprint40_ui_polish.py
- test_sprint41.py
- test_sprint42.py
- test_sprint43.py
- test_sprint44.py
- test_sprint45.py
- test_sprint46.py
- test_sprint47.py
- test_sprint48.py
- test_sprint49.py
- test_sprint5.py
- test_sprint50.py
- test_sprint51.py
- test_sprint6.py
- test_sprint7.py
- test_sprint8.py
- test_sprint9.py
- test_sqlite_wal_reset_upgrade.py
- test_sse_chunked.py
- test_sse_error_multi_probe_reconnect.py
- test_sse_recovery_scroll_stranding.py
- test_sse_relay_apperror_closes.py
- test_stable_assistant_turn_anchor_normalizer.py
- test_stable_assistant_turn_anchor_phase0.py
- test_stable_assistant_turn_anchor_registry.py
- test_stage268_opus_followups.py
- test_stage299_opus_fixes.py
- test_stage302_config_override_regression.py
- test_stage326_composer_draft_validation.py
- test_stage326_pending_goal_continuation_race.py
- test_stage364_opus_live_sse_event_id.py
- test_stale_empty_session_restore.py
- test_stale_stream_cleanup.py
- test_stale_stream_pending_recovery.py
- test_stale_stream_writeback.py
- test_stale_user_context_contamination.py
- test_start_session_turn_runtime_adapter.py
- test_state_db_active_filter.py
- test_state_db_backstop_boundary_gate.py
- test_state_db_read_backstop.py
- test_state_db_readonly_reads_models.py
- test_state_db_worktree_recovery.py
- test_static_asset_compression_and_cache.py
- test_static_asset_resolver.py
- test_static_js_runtime_lint.py
- test_static_js_scope_undef.py
- test_status_command_card.py
- test_stream_end_recovery_gating.py
- test_stream_offline_buffer_cap.py
- test_stream_offline_gap_recovery.py
- test_stream_subscriber_queue_cap.py
- test_streaming_agent_cache_lifecycle.py
- test_streaming_cache_ttl_vs_poll.py
- test_streaming_done_payload_message_count.py
- test_streaming_katex_live_render.py
- test_streaming_live_usage_estimate.py
- test_streaming_markdown.py
- test_streaming_max_tokens_quota.py
- test_streaming_race_fix.py
- test_streaming_session_sidebar.py
- test_streaming_sidebar_scroll.py
- test_streaming_todo_state_static.py
- test_streaming_writeback_diagnostics.py
- test_subagent_parent_in_import_window.py
- test_subpath_frontend_routes.py
- test_svg_audio_video_rendering.py
- test_symlink_cycle_detection.py
- test_tars_scroll_reset_regressions.py
- test_terminal_auto_expand_setting.py
- test_terminal_fd_leak.py
- test_terminal_idle_reaper.py
- test_terminal_linux_lifecycle.py
- test_terminal_output_broadcast.py
- test_terminal_process_cleanup.py
- test_terminal_zombie_reaper.py
- test_theme_color_meta_bridge.py
- test_title_aux_routing.py
- test_title_gen_reasoning_extra_gate.py
- test_title_sanitization.py
- test_tls_aware_probe.py
- test_tls_support.py
- test_todo_live_frontend_static.py
- test_todo_panel_cold_load_static.py
- test_todo_state.py
- test_todo_state_emission.py
- test_tool_call_history_paging.py
- test_tool_call_persistence.py
- test_tool_card_preview_summary.py
- test_tool_limit_terminal_state.py
- test_tool_snippet_limit_parity.py
- test_topbar_lazy_message_count.py
- test_transcript_scroll_invariant.py
- test_truncate_session_at_keep.py
- test_trusted_header_auth.py
- test_ttl_cache.py
- test_turkish_locale.py
- test_turn_duration_display.py
- test_turn_journal.py
- test_turn_journal_callsite.py
- test_turn_journal_lifecycle.py
- test_turn_journal_lifecycle_callsite.py
- test_typography_contract.py
- test_ui_card_animation.py
- test_ui_tool_call_cleanup.py
- test_uiux_docs_theme_contract.py
- test_update_apply_ui.py
- test_update_banner_fixes.py
- test_update_channels.py
- test_update_check_ui.py
- test_update_checker.py
- test_update_stash_recovery.py
- test_updates.py
- test_updates_6088_manual_check.py
- test_v050253_opus_followups.py
- test_v050254_opus_followups.py
- test_v050255_opus_followups.py
- test_v050257_opus_followups.py
- test_v050258_opus_followups.py
- test_v050259_sessiondb_fd_leak.py
- test_v050260_docker_invariants.py
- test_verdigris_skin.py
- test_version_badge.py
- test_vietnamese_locale.py
- test_visible_video_preload.py
- test_voice_transcribe_endpoint.py
- test_wakeup_card_responsive.py
- test_wakeup_defer_race.py
- test_wakeup_display_meta.py
- test_wakeup_meta_recovery_paths.py
- test_wakeup_model_resolve_hang.py
- test_watermark_advance_after_edit.py
- test_webhook_project_sessions.py
- test_webui_external_refresh_frontend.py
- test_webui_gateway_chat_backend.py
- test_webui_lineage_display_merge.py
- test_webui_notes_sources.py
- test_webui_platform_hint.py
- test_webui_prefill_context.py
- test_webui_runtime_diagnostics.py
- test_webui_session_db_adapter.py
- test_webui_state_db_context_reconciliation.py
- test_webui_state_db_reconciliation.py
- test_webui_surface_context.py
- test_window_function_collision.py
- test_windows_native_support.py
- test_wipe_rows0_streaming_unpinned_restore.py
- test_workspace_add_quote_strip.py
- test_workspace_artifact_windows_backslash.py
- test_workspace_blank_page_fix.py
- test_workspace_blocked_roots_macos.py
- test_workspace_context_menu_and_rename.py
- test_workspace_dir_signature.py
- test_workspace_display_prefix.py
- test_workspace_files_persist_on_empty_reload.py
- test_workspace_git.py
- test_workspace_inaccessible_paths.py
- test_workspace_panel_persists_on_empty_boot.py
- test_workspace_panel_session_list.py
- test_workspace_preview_preserved_on_stream_done.py
- test_workspace_recovery_ui.py
- test_workspace_stale_recovery.py
- test_workspace_subpath_raw_urls.py
- test_workspace_symlink_containment.py
- test_workspace_symlink_delete_rename.py
- test_workspace_symlink_tree_shape.py
- test_workspace_tree_rename.py
- test_workspace_upload.py
- test_worktree_remove.py
- test_xsession_wakeup_misroute.py
- test_zai_reasoning_effort_gating.py
- test_zeus_skin.py
- test_zh_hant_locale.py
- .dockerignore
- .env.docker.example
- .env.example
- .gitattributes
- .gitignore
- AGENTS.md
- ARCHITECTURE.md
- bootstrap.py
- BUGS.md
- CHANGELOG.md
- CONTRIBUTING.md
- CONTRIBUTORS.md
- ctl.sh
- DESIGN.md
- docker-compose.three-container.yml
- docker-compose.two-container.yml
- docker-compose.yml
- docker_init.bash
- Dockerfile
- eslint.runtime-guard.config.mjs
- flake.lock
- flake.nix
- LICENSE
- mcp_server.py
- package.json
- pyproject.toml
- pytest.ini
- README.md
- requirements-dev.txt
- requirements.txt
- ROADMAP.md
- server.py
- SPRINTS.md
- start.ps1
- start.sh
- TESTING.md
- THEMES.md
- uv.lock
# Installation Guide
git clone https://github.com/nesquena/hermes-webui
Downloads the entire project code from GitHub to your computer.
cd hermes-webui
Moves into the project folder you just downloaded.
2. Docker
Easy Recommended- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
cp .env.docker.example .env
Type this command into your terminal and run it.
docker compose up -d
Builds and starts all defined containers (server, database, etc.) at once, in the background.
docker compose up -d --force-recreate
Builds and starts all defined containers (server, database, etc.) at once, in the background.
docker pull ghcr.io/nesquena/hermes-webui:latest
Type this command into your terminal and run it.
docker run -d \
Runs the built image as an actual container.
Pulled directly from this repo's README.
3. Node.js
Easynpm install
Downloads and installs the libraries listed in package.json.
npm start
Starts the development/run server.
4. Python
Easypip install -r requirements.txt
Installs the Python libraries listed in requirements.txt (or similar).
python server.py
Runs the Python script (or module).
