HERMES-GIELIE/tests
nesquena-hermes ab38ffe25f Fix profile skills-stats thundering herd at cold startup (#5364)
The two-tier mtime cache from #4783 fixed the per-request SKILL.md rescan
but left two concurrency holes that only bite at container cold start,
when the frontend fires several profile-data requests at once and the
caches are empty:

1. `_get_profile_skills_stats()` had no lock, so concurrent misses on the
   same profile each ran `os.walk(followlinks=True)` + parsed every
   SKILL.md simultaneously.
2. `_build_profile_rows_fast()` ran outside `_LIST_PROFILES_CACHE_LOCK`
   in `list_profiles_api()`, so every concurrent request rebuilt all rows
   (each walking every profile's skill tree) at once.

With ThreadingHTTPServer (one OS thread per request) and Docker overlay2,
this stacked thousands of concurrent stat() calls and stalled workers
57-70s (per the report's thread dumps).

Fix:
- Add a per-profile compute lock (registry guarded by a meta-lock) and
  use double-checked locking in `_get_profile_skills_stats()`: concurrent
  misses on one profile collapse to a single compute, while independent
  profiles still compute in parallel.
- Single-flight the row build in `list_profiles_api()` by holding
  `_LIST_PROFILES_CACHE_LOCK` across the build + cache write. Lock order
  is strictly list-lock -> per-profile skills-lock, so no deadlock.

The report's third suggestion (debounce the mtime probe) is deliberately
NOT taken: the every-call cheap probe is the #4783 out-of-band
change-detection contract (test_issue4783 asserts it MUST run on every
call). Serializing the misses removes the herd without weakening that
contract, since only the expensive compute is guarded, not the probe.

Adds tests/test_issue5364_skills_stats_thundering_herd.py proving the
herd collapses (single compute / single build under a concurrent burst),
independent profiles still parallelize, and the every-call probe contract
is preserved. All existing #4783 contract tests still pass.

Co-authored-by: claw-io <claw-io@users.noreply.github.com>
2026-07-01 19:42:11 +00:00
..
manual
__init__.py
_pytest_port.py
_wakeup_helpers.py
browser_smoke.py
conftest.py
js_source_extract.py test(#5231): harden JS source extraction coverage 2026-06-30 16:06:39 -04:00
test_465_session_branching.py
test_499_tts_playback.py feat(#4982): support OpenAI-compatible TTS backend in WebUI (#4982) 2026-06-28 09:50:51 -04:00
test_732_gateway_routing_metadata.py
test_745_code_block_newlines.py
test_779_html_preview.py
test_886_ordered_list_numbering.py
test_1003_appearance_autosave.py
test_1003_preferences_autosave.py Avoid duplicate busy-placeholder refresh 2026-06-28 19:24:44 -04:00
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 rebase #5170 onto current master (union-resolved busy-mode boot conflicts: keep persisted pref on settings-load-fail + preserve placeholder-hint/showBusyPlaceholderHint) 2026-07-01 01:40:53 +00:00
test_1079_cron_session_project.py
test_1325_user_fenced_code.py
test_1432_newchat_and_1423_profile_input.py test: align new chat guard static coverage 2026-06-29 18:38:25 +00:00
test_1466_bfcache_inflight_reattach.py
test_1466_sidebar_cancel_clarify.py test(sidebar): relax menu delete hook assertion 2026-06-30 11:31:41 +08:00
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 Clear archived saved session on boot restore 2026-06-28 06:51:36 +00:00
test_1694_terminal_cleanup_ownership.py test(chat): refresh restore guard source-shape assertions (#5224) 2026-06-30 03:33:55 +00:00
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 fix(i18n): rebase French translation onto master — union-merge new keys, restore theme_usage nbsp, bump open_in_vscode locale count 13->14 (fr gap closed) 2026-06-27 04:09:36 +00:00
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 Merge #5211 (search-ranking) into stage-pq1 2026-06-30 18:06:11 +00:00
test_3866_project_context_memory_section.py fix(#5045): add memory-section hover path titles 2026-06-27 06:05:28 -04:00
test_4109_notification_focus_existing_tab.py
test_4167_sidebar_payload_and_scope.py
test_4170_offline_probe.py Reduce connection lost flapping under large session state 2026-06-29 19:52:02 +00:00
test_4273_expanduser_and_nullbyte.py
test_4413_seed_provider_models.py
test_4504_clarify_stuck_on_expiry.py
test_4676_project_new_session_shortcuts.py feat(#4676): gate per-project quick-create buttons behind opt-in setting 2026-06-30 19:49:07 +00:00
test_4961_url_query_prefill.py fix(#4961): preserve authenticated drafts without starting a session 2026-06-30 14:31:28 -04:00
test_5001_active_profile_recovery.py test(#5021): keep active-profile recovery harness aligned 2026-06-27 02:52:33 +00:00
test_5021_boot_model_redirect_budget.py fix(#5021): keep boot model budget across restore paths 2026-06-27 02:52:33 +00:00
test_5144_busy_composer_placeholder_hint.py Avoid duplicate busy-placeholder refresh 2026-06-28 19:24:44 -04:00
test_5148_settings_search_busy_input_terms.py feat(settings): rank settings search results by match source (#5149) 2026-06-29 10:39:08 -04:00
test_5149_settings_search_ranking.py test(settings): decouple ranking proofs from insertion order (#5149) 2026-06-29 11:18:07 -04:00
test_5167_busy_input_mode_boot.py rebase #5170 onto current master (union-resolved busy-mode boot conflicts: keep persisted pref on settings-load-fail + preserve placeholder-hint/showBusyPlaceholderHint) 2026-07-01 01:40:53 +00:00
test_5306_subagent_sidebar_flicker.py fix(sidebar): keep active-parent delegate children stably visible (flicker) (#5306) 2026-07-01 06:36:02 +00:00
test_5307_subagent_child_transcript.py test: drop unused api.models import (ruff F401) 2026-07-01 09:19:04 +00:00
test_a11y_transcript_landmarks.py Improve latest assistant response landmark 2026-06-30 17:13:45 +00:00
test_active_empty_session_sidebar.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_source_dependency_audit.py
test_anchor_fallback_ownership.py test(chat): stub _postProcessWithAnchorSuppression in the renderMessages node harness (#5338) 2026-07-01 17:46:03 +00:00
test_anchor_scene_persistence.py Preserve empty anchor tool args in parity helper 2026-06-29 05:35:03 +00:00
test_api_timeout.py Reduce connection lost flapping under large session state 2026-06-29 19:52:02 +00:00
test_app_titlebar_restore.py
test_approval_card_layering.py
test_approval_queue.py
test_approval_sse.py
test_approval_unblock.py
test_attention_session_events.py
test_auth.py
test_auth_password_hash_cache.py
test_auth_session_persistence.py ci: run tests across 5 shards (up from 3) + fix 2 latent test-isolation leaks 2026-06-29 05:55:16 +00:00
test_auth_sessions.py
test_auth_settings_safety.py
test_auto_compression_card.py
test_auto_compression_terminal_failure.py fix(streaming): surface provider auth failures in chat (#5121) 2026-06-28 13:26:57 -04:00
test_auxiliary_models_settings.py
test_background_process_wakeup_format.py
test_background_tasks.py
test_batch_fixes.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_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 fix(boot): preserve typed composer input during saved-session boot restore (#5069) 2026-06-27 20:51:46 +00:00
test_bugfix_sweep.py
test_byok_model_dropdown.py fix(#4706): reuse the searchable model picker in onboarding 2026-06-27 04:25:45 +00:00
test_byte_range_parser.py
test_cancel_interrupt.py
test_cancel_stream_owner_guard.py test: make cancelStream harnesses tolerate the new reason param + stdout provenance log 2026-07-01 17:17:11 +00:00
test_cancelled_turn_status.py fix(cancel): preserve partial turn payload via embedded cancel snapshot (#4647) 2026-06-27 16:43:37 +00:00
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 fix(routes): claim CLI/TUI/Desktop sessions on POST, not just GET (salvage of #4153) 2026-06-28 07:43:46 +00:00
test_chat_start_provider_fallback.py
test_chat_upload_attachment_paths.py
test_chinese_locale.py
test_ci_hygiene.py test(#5152): anchor resolver assertion to the new helper 2026-06-28 19:44:38 -04:00
test_clarify_sse.py
test_clarify_unblock.py
test_claude_code_session_import.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
test_cli_only_slash_commands.py test(#4843): prove the /pet webui guard path 2026-06-28 19:49:12 -04:00
test_cli_session_tool_metadata.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_chip_lightbox.py
test_compress_status_404_fix.py
test_compression_snapshot_runtime_clear.py
test_configurable_pinned_sessions_limit.py
test_conftest_network_isolation.py
test_conftest_server_boot.py
test_context_history_sanitization.py fix(streaming): strip consumed OOB steer blocks from model-facing history (#4978) 2026-06-27 19:13:36 +00:00
test_context_message_dedup.py
test_contract_review_gate.py
test_core_data_loss_cases.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_csp_frame_src_extra.py feat(extensions): opt-in CSP frame-src allowlist (HERMES_WEBUI_CSP_FRAME_EXTRA) 2026-06-28 04:08:04 +00:00
test_css_tooltips.py
test_csv_table_rendering.py test(chat): update 6 post-render tests orphaned by the _postProcessWithAnchorSuppression refactor (#5338) 2026-07-01 17:46:03 +00:00
test_ctl_bash32_compat.py
test_ctl_script.py
test_custom_provider_bare_model_reasoning.py
test_custom_provider_display_name.py
test_custom_provider_prefix_collisions.py
test_custom_providers_in_panel.py
test_cvd3_terminal_local_origin_gate.py fix(security): gate embedded-terminal endpoints to local origins when auth disabled 2026-07-01 00:40:25 +00:00
test_dashboard_link_ui.py feat(settings): sync a Hermes Dashboard chip with Appearance dropdown (#4936) 2026-06-27 20:33:51 +00:00
test_dashboard_probe.py
test_default_personality.py
test_default_workspace_fallback.py
test_docker_docs_and_readonly.py fix(docker): exclude .playwright from rsync staging to avoid error 23 2026-07-01 14:21:09 +08:00
test_docker_env_readonly_vars.py
test_docker_gpu_runtime_docs.py
test_docs_gitignore_policy.py
test_early_session_title.py
test_embedded_workspace_terminal.py fix(security): gate embedded-terminal endpoints to local origins when auth disabled 2026-07-01 00:40:25 +00:00
test_empty_partial_activity_restore.py
test_empty_session_no_disk_write.py
test_evict_session_agent_active_run_guard.py fix(session): guard _evict_session_agent against closing a live session's _session_db 2026-06-28 19:36:59 +00:00
test_excalidraw_inline_embed.py test(chat): update 6 post-render tests orphaned by the _postProcessWithAnchorSuppression refactor (#5338) 2026-07-01 17:46:03 +00:00
test_extension_hooks.py fix(security): gate embedded-terminal endpoints to local origins when auth disabled 2026-07-01 00:40:25 +00:00
test_extension_settings_runtime.py fix(extensions): prune malformed browser overrides (#5094) 2026-06-28 18:31:43 -04:00
test_extension_status_endpoint.py fix(extensions): keep runtime settings gated on owned storage (#5094) 2026-06-28 17:44:02 -04:00
test_extension_theme_registration.py feat: let extension skins declare base scheme 2026-06-30 18:17:40 +08:00
test_extension_tts_engine_registration.py fix(tts): close rework blockers for OpenAI TTS (#4982) 2026-06-28 09:55:46 -04:00
test_extensions_settings_panel.py fix(extensions): render installed controls from trusted state (#5094) 2026-06-28 18:15:36 -04:00
test_file_manager_external_session.py chore: log file manager profile denials 2026-06-30 04:12:27 +00:00
test_firefox_sidebar_scroll_stability.py
test_folder_download.py
test_font_size_setting.py
test_french_voices_tts_allowlist.py
test_gateway_approval_legacy_path.py fix(#5135): clear stale gateway approval mirrors on stream teardown 2026-06-28 17:32:55 -04:00
test_gateway_approval_runs_api.py fix(#5139): keep timeout capability probes on the unsupported path 2026-06-28 18:29:37 -04:00
test_gateway_lifecycle_controls.py
test_gateway_sse_reconnect_dedupe.py fix(webui): render a server-initiated turn that finished during an SSE gap on a visible tab 2026-06-30 17:13:45 +00:00
test_gateway_status_agent_health.py
test_gateway_sync.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
test_gateway_watcher_profile.py
test_geist_contrast_skin.py
test_goal_command_webui.py fix(#5092): continue WebUI goals after gateway turns 2026-06-30 05:04:32 +00:00
test_graphite_skin.py test(graphite-skin): drop stale .app-titlebar-icon rect assertion 2026-06-28 20:11:22 +00:00
test_health_restart.py fix(health): preserve restart failure contract and proofs (#5156) 2026-06-29 03:44:06 +00:00
test_hidden_tab_server_initiated_turn.py fix(webui): hidden-tab poll keeps retrying when attach defers in multi-pane (#5172 follow-up) 2026-06-30 16:56:45 +08:00
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 fix(webui): render a server-initiated turn that finished during an SSE gap on a visible tab 2026-06-30 17:13:45 +00:00
test_insights.py feat(insights): surface prompt-cache hit rate (salvage of #3912) 2026-06-28 08:11:22 +00:00
test_issue341.py
test_issue342.py
test_issue347.py test(chat): update 6 post-render tests orphaned by the _postProcessWithAnchorSuppression refactor (#5338) 2026-07-01 17:46:03 +00:00
test_issue357.py
test_issue401.py Gate settled anchor fallbacks by raw index 2026-06-30 08:00:54 +08:00
test_issue467_yolo_mode_toggle.py
test_issue470.py
test_issue477.py
test_issue483_inline_diff_viewer.py test(chat): update 6 post-render tests orphaned by the _postProcessWithAnchorSuppression refactor (#5338) 2026-07-01 17:46:03 +00:00
test_issue484_json_tree_viewer.py test(chat): update 6 post-render tests orphaned by the _postProcessWithAnchorSuppression refactor (#5338) 2026-07-01 17:46:03 +00:00
test_issue486_487.py
test_issue487b.py
test_issue492_workspace_reorder.py
test_issue500_message_list_virtualization.py Fix pinned stream scroll restoration 2026-06-29 00:52:36 +10:00
test_issue500_session_list_virtualization.py
test_issue513_wsl_autostart.py
test_issue538_mcp_management.py
test_issue569_579.py
test_issue570_permission.py
test_issue572.py
test_issue603_provider_categories.py
test_issue604_all_providers_model_picker.py
test_issue607.py
test_issue609.py
test_issue616.py
test_issue617_cron_profile_selector.py
test_issue632.py
test_issue634.py
test_issue644.py
test_issue646.py
test_issue660.py
test_issue673.py
test_issue677.py
test_issue691_model_health_table.py
test_issue693_system_health_panel.py
test_issue696_mcp_visibility_panel.py
test_issue697_mcp_tool_inventory.py
test_issue716_agent_heartbeat.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 Keep done-settle unread metadata aligned with compacted counts 2026-06-30 08:50:25 -04:00
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_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_issue1257_llm_wiki_status.py
test_issue1298_cancel_and_activity.py
test_issue1360_streaming_scroll_hardening.py
test_issue1361_cancel_data_loss.py fix(cancel): preserve partial turn payload via embedded cancel snapshot (#4647) 2026-06-27 16:43:37 +00:00
test_issue1362_codex_oauth_onboarding.py fix(onboarding): rehydrate plain-select fallback so saved model isn't reset to option[0] 2026-06-27 04:33:02 +00:00
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 feat(composer): fit footer controls by overflow (#4657, rebased onto master) 2026-06-29 01:19:02 +00:00
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 fix(boot): restore voice-mode runtime prefs during prefill rework (#4961) 2026-06-29 17:36:51 -04:00
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 fix(agent_health): read cross-container gateway runtime status from gateway_state.json (#5065) 2026-06-27 19:54:50 +00:00
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_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_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 feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
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 fix(session): semantic context truncate on rewind + evict agent 2026-06-28 18:01:56 +00:00
test_issue2929_settings_max_tokens.py feat(settings): expose max_tokens override in Settings (#5010) 2026-06-27 20:27:18 +00:00
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 fix(webui): keep stale transcript mounted while hidden-tab return reloads new messages (#5177) 2026-06-29 17:02:09 +00:00
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_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 fix(webui): keep stale transcript mounted while hidden-tab return reloads new messages (#5177) 2026-06-29 17:02:09 +00:00
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_issue3411_workspace_tree_os_drop.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_issue3470_touch_unpin_streaming_scroll.py
test_issue3479_ios_stream_scroll_jump.py fix(chat): guard live worklog manual scroll intent 2026-06-30 10:52:11 +08:00
test_issue3506_memory_and_watcher.py
test_issue3510_elevenlabs_tts.py fix(tts): close rework blockers for OpenAI TTS (#4982) 2026-06-28 09:55:46 -04:00
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_issue3571_saved_prompts.py
test_issue3582_tts_content_length.py
test_issue3583_orphaned_tool_calls.py
test_issue3585_cron_session_overflow.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
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_issue3709_thinking_double_render.py
test_issue3717_context_length_provider_overrides.py fix: harden None providers config across onboarding/providers/routes (salvage of #3967) 2026-06-28 08:57:39 +00:00
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(#4470): update workspace-disabled assertion to match createOnlyIds pattern 2026-06-29 15:27:16 -04:00
test_issue3800_compaction_summary_length.py
test_issue3802_delete_session_journals.py
test_issue3820_chat_activity_display_mode.py
test_issue3825_oidc_auth.py fix(#3825): harden oidc endpoint and claim validation 2026-06-30 20:59:19 -04:00
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_error_preserves_partial.py
test_issue3930_source_filter_pushdown.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 fix(#5270): keep cron reply tests compatible with route refresh 2026-06-30 08:41:14 -04:00
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(#5201): widen sse-visibility reopen window to 2200 after master-rebase (maintainer rebase-fix) 2026-06-29 19:53:25 +00:00
test_issue4001_inline_code_link_label.py
test_issue4002_shutdown_i18n_code_spans.py
test_issue4006_auto_scroll_follow_default.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_issue4283_recovered_context_replay.py
test_issue4295_midstream_scroll_anchor.py fix(chat): guard live worklog manual scroll intent 2026-06-30 10:52:11 +08:00
test_issue4295_scroll_pin_reentry.py
test_issue4300_gateway_approval_notice.py fix(#5139): keep older gateways on the unsupported warning path 2026-06-28 18:18:47 -04:00
test_issue4324_photon_phantom_providers.py
test_issue4325_virtualization_toggle.py
test_issue4346_vscroll_footer_jitter.py
test_issue4356_no_git_update_check.py
test_issue4360_generic_pool_quota.py
test_issue4385_cron_archive_reappears.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
test_issue4391_settings_shortcut.py
test_issue4449_state_dir_contract.py
test_issue4465_builtin_personalities.py
test_issue4470_kanban_task_editor_fields.py fix(#4470): reject ambiguous kanban runtime input 2026-06-29 15:27:17 -04:00
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 Fix composer control reorder rebase collision 2026-06-30 21:11:54 -05:00
test_issue4622_settled_toolcard_body.py fix(anchor): preserve settled mixed content order (#4958) 2026-06-27 22:54:29 +00:00
test_issue4622_tool_card_restore_guard.py
test_issue4626_windows_restart_no_console.py
test_issue4633_crash_visibility.py fix(webui): crash visibility — faulthandler + thread excepthook + exit audit (#4633) 2026-07-01 18:01:39 +00:00
test_issue4638_lineage_top_n_cap.py
test_issue4650_reasoning_chip_no_storm.py feat(composer): fit footer controls by overflow (#4657, rebased onto master) 2026-06-29 01:19:02 +00:00
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_issue4696_ios_tap_delay.py
test_issue4700_agent_dir_discovery.py
test_issue4702_portrait_open_scroll_bottom.py
test_issue4713_plugins_badge_and_sort.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 feat(moa): route /moa through WebUI via server-resolved MoA config (#5070, #5057) 2026-06-28 00:23:51 +00:00
test_issue4731_mobile_message_actions.py fix(#4731): enlarge mobile message action tap targets 2026-06-28 06:41:16 +00:00
test_issue4746_extension_gallery.py fix(extensions): keep settings-only installs canonical (#5094) 2026-06-28 18:25:47 -04:00
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 fix(webui): keep stale transcript mounted while hidden-tab return reloads new messages (#5177) 2026-06-29 17:02:09 +00:00
test_issue4757_macos_drag_drop_mime.py
test_issue4759_parallel_sidebar_boot_fetch.py Harden connection flapping aftercare 2026-06-29 19:52:02 +00:00
test_issue4761_voice_mode_config.py harden(#5176): clamp configurable voice silence timeout (maintainer hardening) 2026-06-29 20:21:22 +00:00
test_issue4765_sessions_lru_eviction.py fix(webui): bound in-memory SESSIONS cache with lazy reload (#4765) 2026-07-01 18:14:39 +00:00
test_issue4766_sidebar_source_pushdown.py perf(sessions): page archived sidebar rows 2026-06-29 22:24:35 +00:00
test_issue4768_cron_module_missing.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 Improve latest assistant response landmark 2026-06-30 17:13:45 +00:00
test_issue4811_reconnect_chronology.py fix(anchor): preserve settled mixed content order (#4958) 2026-06-27 22:54:29 +00:00
test_issue4813_cron_model_bare_name.py
test_issue4814_mermaid_toolbar.py
test_issue4836_manual_compression_recovery.py test(#4986): drop unused imports (ruff F401) 2026-06-27 21:49:23 +00:00
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 fix(#4843): preserve falsy /pet hook messages 2026-06-29 18:26:40 -04:00
test_issue4856_android_scroll_regression.py fix(chat): keep overflow-anchor suppressed across the async post-render settle window (mobile jump-back) 2026-07-01 17:46:03 +00:00
test_issue4856_mobile_transcript_unscrollable.py
test_issue4875_recovery_prompt_filter.py
test_issue4877_fresh_blank_boot_workspace_bind.py fix(#4961): preserve authenticated drafts without starting a session 2026-06-30 14:31:28 -04:00
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_issue4930_stale_turn_duration.py
test_issue4945_markdown_table_copy.py
test_issue4948_local_stale_approval.py
test_issue4970_stream_done_shrink_regression.py fix(chat): make keep-settled-worklog-open genuinely transient (#5260 gate-cert) 2026-06-30 17:06:31 +00:00
test_issue4973_diagnostics_watchdog.py
test_issue4982_openai_tts.py fix(#5079): no-redirect opener for OpenAI TTS (block redirect-to-private SSRF + bearer leak) 2026-06-30 20:37:43 +00:00
test_issue4985_orphaned_webui_zero_message.py Prune orphan native-WebUI zero-message sessions from sidebar (#4985) 2026-06-28 12:14:58 +08:00
test_issue5057_moa_webui_route.py feat(moa): route /moa through WebUI via server-resolved MoA config (#5070, #5057) 2026-06-28 00:23:51 +00:00
test_issue5060_boot_composer_preserve.py fix(boot): preserve typed composer input during saved-session boot restore (#5069) 2026-06-27 20:51:46 +00:00
test_issue5099_ctrl_k_text_input_guard.py fix(boot): preserve native Ctrl+K text editing during URL prefill rework (#4961) 2026-06-29 14:29:47 -04:00
test_issue5121_provider_auth_terminal_error.py test(#5121): make auth-failure tests host-independent 2026-06-28 22:20:28 +00:00
test_issue5127_process_wakeup_bare_model.py fix(model): repair bare custom-provider suffix on resolver slow path (#5225) 2026-06-30 01:01:17 +00:00
test_issue5130_cron_profile_snapshot.py fix(#5130): serialize profile-scoped snapshot repair 2026-06-28 16:03:25 -04:00
test_issue5132_state_db_override_top_n_cap.py fix(#5132): split state.db sidebar override — source uncapped, count capped 2026-06-29 00:54:15 +00:00
test_issue5139_gateway_approval_offline_notice.py fix(#5139): keep timeout capability probes on the unsupported path 2026-06-28 18:29:37 -04:00
test_issue5141_terminal_failure_transcript_evaluator.py refactor(streaming): split terminal-failure transcript evaluator (#5141) 2026-06-30 18:40:08 +08:00
test_issue5169_profile_active_default_workspace.py fix(profiles): use profile-scoped resolver for /api/profile/active default_workspace (Codex gate #5169) 2026-06-29 01:45:17 +00:00
test_issue5175_macos_launchd_git.py test(updates): keep launchd regression proofs faithful (#5175) 2026-06-29 04:22:51 +00:00
test_issue5177_hidden_tab_blank_gap.py fix(webui): keep stale transcript mounted while hidden-tab return reloads new messages (#5177) 2026-06-29 17:02:09 +00:00
test_issue5196_windows_safe_replace.py test(#5196): add _safe_replace retry/backoff coverage (auto-fix) 2026-06-29 17:54:37 +00:00
test_issue5204_redactor_memoization_contract.py test(#5204): lock redactor memoization contract (cached==uncached + oversize bypass) (auto-fix) 2026-06-29 18:23:41 +00:00
test_issue5210_http_worker_bound.py Keep overflow cleanup off the accept loop 2026-06-29 18:10:20 +00:00
test_issue5220_config_reload_stampede.py fix(config): route stale model reads through shared reload gate (#5220) 2026-06-29 20:50:34 +00:00
test_issue5224_terminal_error_transcript_preserve.py Clarify terminal marker replacement semantics 2026-06-30 03:33:55 +00:00
test_issue5231_default_kanban_dispatch.py test(#5231): harden JS source extraction coverage 2026-06-30 16:06:39 -04:00
test_issue5250_settings_search_dropdown_escape.py fix(#5250): let settings search results escape the menu clip 2026-06-29 22:23:00 -04:00
test_issue5270_cli_webui_continuity.py fix(#5270): route the continuity refresh through chat start 2026-06-30 08:33:20 -04:00
test_issue5273_active_done_viewed_sync.py Keep done-settle unread metadata aligned with compacted counts 2026-06-30 08:50:25 -04:00
test_issue5331_index_only_ghost_cleanup.py fix(sessions): prune index-only ghost sessions (#5331) 2026-07-01 17:41:31 +08:00
test_issue5334_verification_stop_leak.py fix(webui): drop verification-stop synthetic nudge from transcript (#5334) 2026-07-01 18:00:28 +00:00
test_issue5339_restart_stale_user_dedup.py fix(webui): align reconciliation dedup key with workspace-prefix stripping (#5339) 2026-07-01 18:45:18 +00:00
test_issue5345_clarify_toast_and_interrupt_provenance.py test: drop unused pytest import (ruff F401) — from #5346 be894353 2026-07-01 17:17:11 +00:00
test_issue5364_skills_stats_thundering_herd.py Fix profile skills-stats thundering herd at cold startup (#5364) 2026-07-01 19:42:11 +00:00
test_issue_1584_multitab_sse.py
test_issue_1932_goal_hook_unrelated_turns.py
test_issue_branch_context_at_fork.py fix(session): preserve kept tool rows on ambiguous truncate (#5134) 2026-06-30 01:40:07 +00:00
test_issue_code_syntax_highlight.py
test_issue_edit_regenerate_absolute_keep_count.py fix(ui): use absolute keep_count for edit and regenerate truncate 2026-06-28 18:01:54 +00:00
test_issue_neuralwatt_env_key.py test: add regression coverage for neuralwatt provider env-var mapping 2026-06-29 20:41:16 +00:00
test_issue_new_chat_draft_restore.py Fix new chat empty-session reuse guard 2026-06-29 18:38:25 +00:00
test_issue_progress_echo_dedupe.py
test_issue_t16551f61_auth_token_churn_fingerprint.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_kanban_board_ui.py
test_kanban_bridge.py
test_kanban_ui_static.py test(#5231): harden JS source extraction coverage 2026-06-30 16:06:39 -04:00
test_kanban_view_toggle.py
test_katex_streaming.py
test_katex_vendored_assets.py
test_korean_locale.py
test_language_precedence.py
test_large_text_paste_attachment.py fix(webui): make large text paste-as-attachment toggleable via settings 2026-06-30 14:25:53 +10:00
test_live_activity_timeline.py
test_live_anchor_progress_echo.py
test_live_models_ttl_cache.py
test_live_rebuild_budget_warn_rate_limit.py
test_live_stream_ux.py test(chat): refresh terminal recovery source-shape guards (#5224) 2026-06-30 03:33:55 +00:00
test_live_to_final_anchor_visible_order.py Fix transparent live anchor scene replay 2026-06-30 12:27:02 +08:00
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_markdown_source_code_blocks_wrap.py
test_markdown_table_cell_spacing.py
test_mcp_server.py
test_mcp_tools_list_overflow.py
test_media_inline.py fix: authorize session html media artifacts 2026-06-29 05:17:33 +00:00
test_memory_session_lifecycle_generation.py
test_memory_skill_badge.py
test_memory_write_symlink_guard.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_minimax_provider.py
test_mobile_layout.py Merge #5019 (disco32r mobile touch targets) into stage 2026-06-30 18:54:36 +00:00
test_mobile_markdown_wrapping.py
test_mobile_reload_compression_recovery.py
test_mobile_scroll_jank.html
test_mobile_titlebar_session_actions.py
test_model_cache_metadata.py
test_model_default_boot_precedence.py fix(#5021): retry generic model auth after boot 401 2026-06-27 02:52:33 +00:00
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 fix(webui): render a server-initiated turn that finished during an SSE gap on a visible tab 2026-06-30 17:13:45 +00:00
test_models_dev_reasoning.py
test_msg_footer_wrap.py
test_native_image_attachments.py fix: gate reasoning_content replay by provider policy 2026-06-29 11:47:02 +10:00
test_new_chat_default_model_frontend.py Merge #4969 into stage 2026-06-30 23:07:53 +00:00
test_none_providers_config_guard.py fix: harden None providers config across onboarding/providers/routes (salvage of #3967) 2026-06-28 08:57:39 +00:00
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(chat): refresh terminal recovery source-shape guards (#5224) 2026-06-30 03:33:55 +00:00
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_optionz_liveview_perf.py fix(webui): render a server-initiated turn that finished during an SSE gap on a visible tab 2026-06-30 17:13:45 +00:00
test_orphaned_tool_messages.py
test_parallel_session_switch.py Defer non-critical session switch refreshes 2026-06-29 00:53:41 +10:00
test_partial_bloat_fix.py
test_passkey_auth.py
test_pdf_html_preview.py test(chat): update 6 post-render tests orphaned by the _postProcessWithAnchorSuppression refactor (#5338) 2026-07-01 17:46:03 +00:00
test_performance_polling_hardening.py Harden connection flapping aftercare 2026-06-29 19:52:02 +00:00
test_pin_limit_lineage_visibility.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_synthetic.py
test_profile_default_workspace_823.py fix(profiles): use profile-scoped resolver for /api/profile/active default_workspace (Codex gate #5169) 2026-06-29 01:45:17 +00:00
test_profile_env_isolation.py
test_profile_path_security.py
test_profile_skills_stats.py test: de-flake test_skills_stats_cache mtime race 2026-06-29 06:07:44 +00:00
test_profile_switch_1200.py test(auth): align chat retag fixture with active profile 2026-06-30 04:28:15 +00:00
test_profile_switch_ux.py Defer non-critical session switch refreshes 2026-06-29 00:53:41 +10:00
test_profile_terminal_env.py
test_profiles_route_endpoint.py
test_project_chip_ui.py
test_provider_cost_budget.py fix(#692): keep budget validation consistent across save and read 2026-06-29 01:59:51 -04:00
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 fix(chat): do not collapse a pure-prose turn into a worklog (stream-done jump) 2026-06-29 17:06:45 +00:00
test_pwa_manifest_csp.py
test_pwa_manifest_sw.py
test_pwa_notification_controls.py fix: coerce msgContent to string in completion notification preview 2026-06-27 04:50:08 +00:00
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 chore(composer): drop #4657's quota-chip default-flip — keep just the fit-engine 2026-06-29 01:38:34 +00:00
test_quote_entity_mangling.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 feat(composer): fit footer controls by overflow (#4657, rebased onto master) 2026-06-29 01:19:02 +00:00
test_reasoning_content_replay.py fix: gate reasoning_content replay by provider policy 2026-06-29 11:47:02 +10:00
test_reasoning_effort_model_capabilities.py
test_reasoning_show_hide.py
test_recovered_journal_context.py
test_regressions.py test: widen brittle static-grep windows for delete/duplicate route assertions (#5307 guard lines shifted markers past the fixed windows; functionality unchanged) 2026-07-01 08:49:37 +00:00
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 ci: run tests across 5 shards (up from 3) + fix 2 latent test-isolation leaks 2026-06-29 05:55:16 +00:00
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 fix(webui): keep a following reader pinned through streaming growth and SSE recovery 2026-06-30 10:16:06 +08:00
test_run_journal_routes.py fix(auth): guard profile-owned stream IDs 2026-06-30 04:28:15 +00:00
test_run_journal_streaming_static.py
test_run_lifecycle_health.py fix(auth): guard profile-owned stream IDs 2026-06-30 04:28:15 +00:00
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_regression.py fix: skip archived saved session on boot 2026-06-28 06:51:36 +00:00
test_session_active_profile_authorization.py fix(#5270): keep chat-start auth tests compatible with route refresh 2026-06-30 08:37:36 -04:00
test_session_attention_badges.py
test_session_attention_sound.py
test_session_batch_select.py
test_session_cache_ownership.py
test_session_channel_option_x.py Fix session stream resume after live stream end 2026-06-29 19:52:02 +00:00
test_session_cli_scan_fast_path.py
test_session_copy_link_action.py
test_session_cross_tab_sync.py Update boot restore static guard test 2026-06-28 06:51:36 +00:00
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: widen brittle static-grep windows for delete/duplicate route assertions (#5307 guard lines shifted markers past the fixed windows; functionality unchanged) 2026-07-01 08:49:37 +00:00
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_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_jump_buttons.py
test_session_lineage_collapse.py fix(sidebar): stack subagent sessions under parent 2026-06-30 11:01:18 +10:00
test_session_lineage_full_transcript.py
test_session_lineage_metadata_api.py
test_session_lineage_report.py
test_session_list_long_history_perf.py perf(sessions): page archived sidebar rows 2026-06-29 22:24:35 +00:00
test_session_lost_response_regression.py fix(cancel): preserve partial turn payload via embedded cancel snapshot (#4647) 2026-06-27 16:43:37 +00:00
test_session_message_window_renderable_tail.py
test_session_metadata_cli_lookup.py
test_session_metadata_fast_path.py fix(#5021): keep restored-session boot inside the shared 401 budget 2026-06-27 02:52:33 +00:00
test_session_model_resolution_on_load.py
test_session_ops.py fix(auth): tolerate query-less route inputs 2026-06-30 04:28:15 +00:00
test_session_recovery_api.py fix(anchor): preserve settled mixed content order (#4958) 2026-06-27 22:54:29 +00:00
test_session_recovery_audit.py
test_session_rename_lifecycle.py
test_session_rotate_url_sync.py test(chat): refresh restore guard source-shape assertions (#5224) 2026-06-30 03:33:55 +00:00
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 Harden connection flapping aftercare 2026-06-29 19:52:02 +00:00
test_session_sidebar_relative_time.py
test_session_sidebar_resilience.py Harden connection flapping aftercare 2026-06-29 19:52:02 +00:00
test_session_sidecar_repair.py
test_session_static_assets.py
test_session_summary_redaction.py
test_session_switch_busy_race.py fix(webui): keep stale transcript mounted while hidden-tab return reloads new messages (#5177) 2026-06-29 17:02:09 +00:00
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_keep_count_validation.py
test_sessions_search_depth_validation.py
test_sessions_search_profile_scope.py
test_settings_navigation_and_detail_refresh.py
test_shift_enter_send_key.py Add Shift+Enter send key option 2026-06-30 18:04:29 +00:00
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 perf(sessions): page archived sidebar rows 2026-06-29 22:24:35 +00:00
test_sidebar_tab_order.py
test_sidebar_tab_visibility.py feat(settings): sync a Hermes Dashboard chip with Appearance dropdown (#4936) 2026-06-27 20:33:51 +00:00
test_sidebar_tooltips.py
test_sidebar_unassigned_filter.py
test_sienna_skin.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_smooth_text_fade.py test(webui): make live-transition guard anchors explicit 2026-07-01 15:50:24 +00:00
test_soul_memory.py
test_spanish_locale.py
test_sprint1.py
test_sprint2.py
test_sprint3.py
test_sprint4.py
test_sprint5.py
test_sprint6.py
test_sprint7.py
test_sprint8.py
test_sprint9.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 Add Shift+Enter send key option 2026-06-30 18:04:29 +00:00
test_sprint19.py
test_sprint20.py test(#5176): update sprint20 continuous-recognition assertion for the new opt-in default-false form 2026-06-29 20:28:26 +00:00
test_sprint20b.py
test_sprint23.py
test_sprint26.py
test_sprint27.py
test_sprint28.py
test_sprint29.py
test_sprint30.py
test_sprint31.py
test_sprint32.py
test_sprint33.py
test_sprint34.py
test_sprint35.py
test_sprint36.py test: make cancelStream harnesses tolerate the new reason param + stdout provenance log 2026-07-01 17:17:11 +00:00
test_sprint37.py
test_sprint38.py
test_sprint39.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 fix(compress): make manual /compress durable across reload + restart (#4986) 2026-06-27 21:43:27 +00:00
test_sprint47.py
test_sprint48.py
test_sprint49.py
test_sprint50.py
test_sprint51.py
test_sse_chunked.py
test_sse_error_multi_probe_reconnect.py address greptile P2s: stage counter starts at (1/N); brace-match test window 2026-06-29 01:16:53 +08:00
test_sse_recovery_scroll_stranding.py test(#5217): scope follow-intent ordering assertion to _handleStreamError + strip EOF blank line (Codex gate nits) 2026-06-30 23:18:00 +00:00
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_worktree_recovery.py
test_static_asset_compression_and_cache.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_streaming_agent_cache_lifecycle.py
test_streaming_done_payload_message_count.py fix(workspace): live-sync active Workspace Todos tab 2026-06-28 07:28:30 +00:00
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_subpath_frontend_routes.py
test_svg_audio_video_rendering.py
test_symlink_cycle_detection.py
test_tars_scroll_reset_regressions.py fix(webui): keep stale transcript mounted while hidden-tab return reloads new messages (#5177) 2026-06-29 17:02:09 +00:00
test_terminal_auto_expand_setting.py
test_terminal_linux_lifecycle.py
test_terminal_process_cleanup.py
test_terminal_zombie_reaper.py
test_theme_color_meta_bridge.py feat: let extension skins declare base scheme 2026-06-30 18:17:40 +08:00
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 fix(workspace): live-sync active Workspace Todos tab 2026-06-28 07:28:30 +00:00
test_todo_panel_cold_load_static.py fix(workspace): align Workspace Todos rendering with sidebar 2026-06-29 04:44:16 +00:00
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 fix(session): semantic context truncate on rewind + evict agent 2026-06-28 18:01:56 +00:00
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_ui_card_animation.py
test_ui_tool_call_cleanup.py
test_uiux_docs_theme_contract.py
test_update_apply_ui.py fix(health): preserve restart failure contract and proofs (#5156) 2026-06-29 03:44:06 +00:00
test_update_banner_fixes.py fix(tests): tighten stash reset proof for agent update (#5156) 2026-06-29 03:44:06 +00:00
test_update_check_ui.py
test_update_checker.py
test_update_stash_recovery.py
test_updates.py test(updates): keep launchd regression proofs faithful (#5175) 2026-06-29 04:22:51 +00:00
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_voice_transcribe_endpoint.py
test_wakeup_defer_race.py
test_wakeup_model_resolve_hang.py
test_watermark_advance_after_edit.py
test_webhook_project_sessions.py feat: add Webhooks sidebar filter parity 2026-06-30 17:06:31 +00:00
test_webui_external_refresh_frontend.py fix(webui): keep stale transcript mounted while hidden-tab return reloads new messages (#5177) 2026-06-29 17:02:09 +00:00
test_webui_gateway_chat_backend.py fix(#5092): continue WebUI goals after gateway turns 2026-06-30 05:04:32 +00:00
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 fix(webui): overlay real state.db message count for subagent children so they don't vanish from the sidebar (#5308) 2026-07-01 18:06:21 +00:00
test_webui_surface_context.py
test_window_function_collision.py
test_windows_native_support.py
test_workspace_add_quote_strip.py
test_workspace_blank_page_fix.py fix(profiles): show active profile workspace on blank new-chat (#5169) 2026-06-29 01:25:58 +00:00
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_stale_recovery.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_zeus_skin.py
test_zh_hant_locale.py