HERMES-GIELIE/tests
b3nw d06776a4c8 fix: model picker snaps to wrong model with multi-slash IDs (#3360)
When a custom/proxy provider serves models whose IDs share the same base
name across vendor prefixes (e.g. vendor_a/deepseek/deepseek-v4-pro vs
vendor_b/deepseek/deepseek-v4-pro), several normalization functions use
split('/').pop() (or split('/')[-1]) which discards all segments except
the last.  This causes three user-facing symptoms: (1) clicking one
model selects a different colliding model, (2) configured-model badges
attach to the wrong dropdown entry, and (3) the model-chip label in the
composer bar is truncated to just the base model name.

Root cause: all three callers take only the last slash-segment instead
of stripping only the first (provider) segment and preserving the
remaining vendor hierarchy.

Fix 1 — _findModelInDropdown (static/ui.js): Move the exact string match
before the provider-aware normalized match.  Previously, when all models
share the same provider ID (common with LLM proxy setups), the normalized
match returned whichever colliding option appeared first in DOM order,
even though an exact match existed.

Fix 2 — _normalizeConfiguredModelKey (static/ui.js) and _norm_model_id
(api/config.py): Replace split('/').pop() / split('/')[-1] with a first-
segment-only strip (regex on frontend, split('/',1) on backend), matching
the strategy already used by _findModelInDropdown's norm lambda.  This
prevents multi-slash IDs from colliding in badge assignment and the
configured-entry dedup set.  Additionally, strip colon-qualified provider
prefixes (e.g. custom:name/) before the slash strip so badge-key variants
like 'custom:llm-proxy/opencode_go/model' merge correctly with the bare
'opencode_go/model' in the configured section dedup.

Fix 3 — getModelLabel (static/ui.js) and _get_label_for_model
(api/config.py): Same split('/').pop() to first-segment-strip change so
the composer-bar model chip and backend label preserve vendor context
(e.g. shows 'opencode_go/deepseek-v4-pro' instead of 'deepseek-v4-pro').

Verification: 9 new regression tests (test_issue3360) covering exact-
match priority, multi-slash normalization, and backend/frontend parity.
Updated 1 existing test (test_norm_model_id_trailing_empty_guard) that
asserted the old split('/').pop() pattern.  All 25 related tests pass.

AI Usage: Gemini (gemini-2.5-pro), via Antigravity IDE, pair-programmed.

(cherry picked from commit a454fecd2b3a83f7da34473c883be069171aeac9)
2026-06-02 05:08:30 +00:00
..
__init__.py
_pytest_port.py
browser_smoke.py ci: add headless browser smoke test (runtime brick-class gate) (#3231) 2026-05-30 18:48:25 -07:00
conftest.py fix(#3104): correct dedup filename reporting + make zip-bomb cap testable 2026-06-02 00:41:11 +00:00
test_465_session_branching.py
test_499_tts_playback.py
test_732_gateway_routing_metadata.py
test_745_code_block_newlines.py
test_779_html_preview.py Fix workspace open in browser inline sandbox 2026-06-01 04:42:05 +00:00
test_886_ordered_list_numbering.py
test_1003_appearance_autosave.py
test_1003_preferences_autosave.py Add option to ignore agent updates 2026-05-24 15:52:34 +00: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: anchor picker-active-state assertions to global #mainSettings rule 2026-05-20 00:23:01 +00:00
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 fix(#3337): prevent Prism highlight leaking across workspace files 2026-06-01 21:56:26 +00:00
test_1560_password_env_var_no_op.py feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00:00
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 feat: add distinct attention request sound 2026-05-30 19:40:40 +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_2735_open_in_vscode.py Stage 403: Opus pre-release fixes (1 MUST-FIX + 3 SHOULD-FIX) 2026-05-24 17:42:06 +00:00
test_agent_context_docs.py docs: move Hermes overview out of agent context root 2026-05-19 23:55:58 -07:00
test_agent_health_pid_path_fallback.py stage-batch17: skip #2927 test file when hermes-agent module not available (CI fix) 2026-05-25 17:11:59 +00:00
test_agent_health_remote.py fix: probe remote gateway via HERMES_API_URL before local fallback (#3312) 2026-06-01 19:38:00 +00:00
test_agent_max_turns_parity.py
test_api_timeout.py fix: harden webui passive performance paths 2026-05-30 01:39:54 +00:00
test_app_titlebar_restore.py
test_approval_card_layering.py
test_approval_queue.py Stage 382: PR #2496 2026-05-18 03:43:59 +00:00
test_approval_sse.py
test_approval_unblock.py
test_attention_session_events.py feat: add distinct attention request sound 2026-05-30 19:40:40 +00:00
test_auth_password_hash_cache.py Fix CSRF test isolation 2026-05-18 07:27:31 +08:00
test_auth_session_persistence.py ci: run test suite in 3 parallel shards + make suite shard-safe 2026-05-30 21:09:25 +00:00
test_auth_sessions.py
test_auto_compression_card.py Stage 387: PR #2600 2026-05-19 22:10:20 +00:00
test_auxiliary_models_settings.py fix: validate auxiliary model task slots 2026-05-25 08:51:44 +08:00
test_background_tasks.py
test_batch_fixes.py Stamp CHANGELOG for v0.51.119 (Release CQ / stage-batch1 / 3-PR low-risk batch) 2026-05-24 03:26:45 +00:00
test_blockquote_rendering.py
test_bootstrap_discover_agent.py
test_bootstrap_dotenv.py fix: preserve webui launcher environment 2026-05-24 21:49:21 +02:00
test_bootstrap_foreground.py
test_bootstrap_python_selection.py
test_broken_pipe_cascade.py fix(helpers): use ssl.SSLError instead of broad OSError in disconnect tuple 2026-05-31 01:56:39 +00:00
test_bugbatch_apr2026.py
test_bugfix_sweep.py fix: harden WebUI bugfix sweep 2026-05-28 13:38:50 -04:00
test_byok_model_dropdown.py
test_byte_range_parser.py
test_cancel_interrupt.py
test_cancelled_turn_status.py
test_canonical_session_resolution_rfc.py docs: add canonical session resolution contract 2026-05-25 11:14:15 +02:00
test_catppuccin_skin.py
test_chat_panel_sidebar_resync.py fix(chat): preserve session actions after panel resync 2026-05-22 09:25:15 +02:00
test_chat_start_provider_fallback.py Fix browser chat provider fallback on fresh sessions 2026-05-28 11:10:14 -07:00
test_chat_upload_attachment_paths.py fix: hide attachment path markers in chat UI 2026-06-01 05:31:53 +00:00
test_chinese_locale.py
test_ci_hygiene.py
test_clarify_sse.py
test_clarify_unblock.py fix(clarify): require stable clarify_id and wait for backend ack so stale responses are rejected 2026-05-20 16:35:15 +00:00
test_claude_code_session_import.py fix: let cron sessions bypass CLI_VISIBLE_SESSION_LIMIT for project chips (#3172) 2026-05-30 23:25:41 +08:00
test_cli_only_slash_commands.py
test_cli_session_tool_metadata.py
test_client_event_diagnostics.py fix(chat): log sanitized client sse diagnostics 2026-05-25 02:06:42 +02:00
test_cmd_dropdown_scroll_838.py
test_cmd_idle_fallback.py
test_commands_endpoint.py
test_composer_chip_lightbox.py feat: add prev/next navigation to image lightbox 2026-05-26 15:16:03 +08:00
test_compress_status_404_fix.py
test_compression_snapshot_runtime_clear.py fix: exclude hidden snapshots from pin quota 2026-05-30 11:48:57 +02:00
test_configurable_pinned_sessions_limit.py Stage 404: PR #2830 — fix(sessions): keep pin state authoritative by @franksong2702 (closes #2821) 2026-05-24 18:08:42 +00:00
test_conftest_network_isolation.py
test_context_message_dedup.py fix(sidebar): keep newer continuation visible over older snapshot 2026-05-28 13:38:06 -06:00
test_contract_review_gate.py Clarify contract routing coverage boundary 2026-05-26 11:32:34 +08:00
test_credential_pool_providers.py
test_cron_delivery_options.py feat(cron): dynamic delivery options from API instead of hardcoded select 2026-05-27 10:58:49 +08:00
test_cron_manual_run_persistence.py fix: deliver manual cron run results 2026-05-17 01:41:06 -07:00
test_cron_needs_attention.py
test_cron_no_agent_edit.py
test_cron_refresh_button_835.py
test_cron_run_job_import.py
test_cron_session_title.py
test_cron_toast_notifications.py
test_css_tooltips.py
test_csv_table_rendering.py
test_ctl_bash32_compat.py
test_ctl_script.py test(ctl): allow dotenv-free launches 2026-06-01 04:42:05 +00:00
test_custom_provider_bare_model_reasoning.py stage-batch10: #3327 model-id normalize + #3334 RFC slice doc + #3341 profile skill counts 2026-06-01 18:24:05 +00:00
test_custom_provider_display_name.py
test_custom_providers_in_panel.py fix: show config-managed custom providers 2026-05-20 06:27:00 -07:00
test_dashboard_link_ui.py fix: suppress timeout toasts for passive pollers 2026-05-28 11:13:00 +08:00
test_dashboard_probe.py fix: preserve IPv6 dashboard link brackets 2026-05-19 21:35:10 -04:00
test_default_personality.py fix: avoid stamping display personality on sessions 2026-05-24 14:57:37 -04:00
test_default_workspace_fallback.py
test_docker_docs_and_readonly.py harden(docker-smoke): catch !!ERROR/!!Exiting + tighten egg_info test 2026-05-17 17:34:46 -07:00
test_docker_env_readonly_vars.py
test_docs_gitignore_policy.py
test_early_session_title.py
test_embedded_workspace_terminal.py
test_empty_partial_activity_restore.py Fix empty partial activity tail recency 2026-05-28 15:30:49 +08:00
test_empty_session_no_disk_write.py
test_excalidraw_inline_embed.py
test_extension_hooks.py
test_file_manager_external_session.py fix: file manager falls back to state.db for external Telegram/CLI sessions (#3280) 2026-06-01 17:19:48 +00:00
test_firefox_sidebar_scroll_stability.py fix: harden webui passive performance paths 2026-05-30 01:39:54 +00:00
test_folder_download.py feat(workspace): download folder as zip via /api/folder/download 2026-05-18 21:40:02 -05:00
test_font_size_setting.py
test_gateway_sse_reconnect_dedupe.py fix: suppress phantom sidebar refresh on gateway SSE reconnect 2026-05-31 18:26:30 +00:00
test_gateway_status_agent_health.py fix(gateway): treat active sessions as configured 2026-05-25 21:48:51 +08:00
test_gateway_sync.py fix: keep agent cron sessions in project chips 2026-05-30 02:18:51 +00:00
test_geist_contrast_skin.py fix: honour skin value in theme command 2026-05-20 00:09:06 +00:00
test_goal_command_webui.py fix(runtime): clarify goal adapter seam semantics 2026-05-18 12:10:17 -07:00
test_home_route_html_error.py
test_ime_composition.py
test_import_cli_session_lineage.py
test_inflight_purge_missing_sessions.py
test_inflight_send_start_race.py fix: clear stale inflight UI state (closes #2795, squashed from 5 commits) 2026-05-24 04:08:25 +00:00
test_inflight_storage_quota.py fix(chat): rename _inflightStateLimits() to _getInflightStateLimits() to fix v0.51.117 collision 2026-05-22 23:17:00 +00:00
test_inflight_stream_reuse.py fix: reattach SSE on session-switch return + close leaked stream connections (#2925) 2026-05-28 02:48:17 +00:00
test_insights.py fix(insights): exclude source='webui' from CLI session pass + add tests 2026-05-30 18:58:20 +00:00
test_issue341.py
test_issue342.py
test_issue347.py stage-batch11: #3330 pinned-scroll + #3311 inline-math currency 2026-06-01 19:08:30 +00:00
test_issue357.py
test_issue401.py fix: avoid double rebasing legacy tool cards 2026-05-30 16:10:52 +02:00
test_issue467_yolo_mode_toggle.py
test_issue470.py Fix settled rendering for file markdown links 2026-05-18 22:32:20 -06:00
test_issue477.py fix: vendor math and yaml assets for CSP 2026-05-26 23:49:02 +02:00
test_issue483_inline_diff_viewer.py
test_issue484_json_tree_viewer.py
test_issue486_487.py
test_issue487b.py
test_issue492_workspace_reorder.py
test_issue500_session_list_virtualization.py Stage 397: PR #2688 — fix: resync virtualized sidebar after scroll clamp 2026-05-21 17:14:36 +00:00
test_issue513_wsl_autostart.py
test_issue538_mcp_management.py feat: PATCH /api/mcp/servers/{name} — enable/disable toggle 2026-05-24 17:13:32 +00:00
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 feat: sticky manual unpin for streaming chat scroll (#3343) 2026-06-01 20:34:06 +00:00
test_issue693_system_health_panel.py ci: run test suite in 3 parallel shards + make suite shard-safe 2026-05-30 21:09:25 +00:00
test_issue696_mcp_visibility_panel.py feat: PATCH /api/mcp/servers/{name} — enable/disable toggle 2026-05-24 17:13:32 +00:00
test_issue697_mcp_tool_inventory.py
test_issue716_agent_heartbeat.py Merge PR #3039 2026-05-28 18:27:03 +00:00
test_issue734_message_windowing.py Stage 397: PR #2692 — fix(ui): invalidate transcript cache on same-count content changes 2026-05-21 17:14:37 +00:00
test_issue739_652_653.py
test_issue744.py
test_issue749_profile_create_model_picker.py
test_issue765_streaming_persistence.py fix: guard session cache ownership across compression 2026-05-30 18:19:31 +02:00
test_issue781.py
test_issue789.py
test_issue798.py fix: avoid stamping display personality on sessions 2026-05-24 14:57:37 -04:00
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 fix(chat): scope settled stream cleanup to source 2026-05-27 09:10:43 +02:00
test_issue856_background_completion_unread.py Fix workspace preview closing on chat stream done 2026-05-31 16:53:57 +00:00
test_issue856_pinned_indicator_layout.py feat: surface session attention badges 2026-05-30 19:18:13 +00:00
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 fix(webui): harden reasoning chip provider coverage 2026-05-24 18:42:44 -06:00
test_issue1105_ssrf_custom_providers.py
test_issue1106_custom_providers_models.py
test_issue1112_csp_google_fonts.py
test_issue1116_composer_placeholder.py Fix profile-aware assistant display names 2026-05-19 07:17:11 -06:00
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 fix(models): preserve provider-qualified model selections in the picker 2026-05-29 10:24:44 -07:00
test_issue1189_openai_codex_detection.py
test_issue1195_session_profile_routing.py
test_issue1202_oauth_provider_status.py test: allow custom provider settings filter 2026-05-20 09:33:51 -07:00
test_issue1217_transcript_compaction.py fix: preserve repeated state rows in replay delta 2026-05-25 00:10:27 +00:00
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 profile-aware assistant display names 2026-05-19 07:17:11 -06:00
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 Refresh session context metadata on model changes 2026-05-17 13:27:40 +08:00
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 feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00: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 Stage 404: PR #2716 — Performance optimizations by @dobby-d-elf 2026-05-24 18:08:41 +00:00
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 fix: suppress timeout toasts for passive pollers 2026-05-28 11:13:00 +08:00
test_issue1612_renamed_root_profile.py
test_issue1614_project_profile_filtering.py fix(#3331): gate findings — empty-session profile retag, root-alias project filter, create-profile validation 2026-06-01 21:05:32 +00:00
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 fix: invalidate model cache on catalog changes 2026-05-16 22:24:12 -07:00
test_issue1700_parallel_profile_switch.py
test_issue1731_upward_scroll_unpins.py feat: sticky manual unpin for streaming chat scroll (#3343) 2026-06-01 20:34:06 +00:00
test_issue1743_model_picker_race.py Fix composer model picker opening lag 2026-05-22 16:58:55 +00:00
test_issue1765_codex_quota.py
test_issue1766_quota_topbar.py
test_issue1771_session_model_switch_sync.py Fix profile-aware assistant display names 2026-05-19 07:17:11 -06:00
test_issue1785_workspace_preview_breadcrumb.py Stage 404: PR #2716 — Performance optimizations by @dobby-d-elf 2026-05-24 18:08:41 +00:00
test_issue1786_workspace_heading_actions.py
test_issue1793_file_tree_cruft_filter.py
test_issue1796_error_toasts.py
test_issue1800_file_html_interactions.py fix(security #3234): enumerate named-profile roots, drop wholesale profiles deny (Codex review #8) 2026-05-31 03:48:59 +00:00
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 docs: v0.51.201 release header + fix #3336 tool-card diff test extraction list 2026-06-01 19:54:45 +00:00
test_issue1850_csp_connect_src_jsdelivr.py
test_issue1855_request_diagnostics.py
test_issue1855_resolve_model_provider_fast_path.py Stage 397: PR #2684 — fix: repair stale Codex OpenAI slash-qualified model state 2026-05-21 17:13:56 +00:00
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 chore: address audit findings — module docstring + consistent section separators 2026-05-26 16:56:02 +02:00
test_issue1896_context_length_fallback_args.py Refresh session context metadata on model changes 2026-05-17 13:27:40 +08:00
test_issue1897_profile_switch_agent_cache.py
test_issue1908_docker_hardening.py
test_issue1909_csp_report_only.py
test_issue1909_csrf_token.py Fix CSRF test isolation 2026-05-18 07:27:31 +08:00
test_issue1910_login_attempt_persistence.py
test_issue1913_workspace_prefix_sentinel.py
test_issue1937_endless_scroll_jumpstart_race.py test: update sessions.js string-assertions for #3313 carry-forward rename 2026-06-01 19:46:36 +00:00
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 fix: marker-based compression anchor calculation 2026-05-25 15:16:26 +08:00
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_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 fix(webui): close sqlite3 connections in handoff-summary path (#2233) 2026-05-22 18:34:06 +08:00
test_issue2237_docker_chown_git_objects.py fix(docker): widen chown prune to the entire hermes-agent path 2026-05-17 10:38:40 -07:00
test_issue2245_mixed_case_provider_models.py
test_issue2246_question_jump.py test: update #2246 question-jump assertions for #3114 (button on all assistant msgs with resolvable target) 2026-05-30 00:10:29 +00:00
test_issue2262_compression_marker_timeout_ui.py
test_issue2271_keyless_custom_provider.py fix: sanitize custom provider env hints 2026-05-18 15:18:20 -07:00
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 fix: keep webui mirrored sessions out of cli filter 2026-05-28 00:51:12 +02:00
test_issue2386_localstorage_quota.py
test_issue2389_storage_pressure.py
test_issue2399_provider_config_flags.py
test_issue2419_cache_usage_display.py feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00:00
test_issue2428_table_pipe_protection.py Stage 375: PR #2428 stage-fix #2 — drop angle brackets from pipe-protect set (Opus catch) 2026-05-17 03:53:29 +00:00
test_issue2453_agent_source_boundary.py docs: inventory agent source boundary 2026-05-17 16:11:29 -07:00
test_issue2454_active_session_spinner.py Merge remote-tracking branch 'origin/master' into fix/session-list-touch-actions 2026-05-28 13:03:55 -06:00
test_issue2462_theme_i18n.py feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00:00
test_issue2472_fork_from_here_messaging.py fix(session): preserve sidecar order in display merges 2026-05-28 19:58:17 +02:00
test_issue2481_selected_text_reply.py Repair selected text reply review blockers 2026-05-18 07:26:19 +08:00
test_issue2508_session_pin_cap.py test: cover hidden snapshot pin quota route 2026-05-30 16:31:24 +02:00
test_issue2513_custom_provider_remote_models.py fix: load remote models for named custom providers 2026-05-18 01:08:09 -07:00
test_issue2518_new_session_inflight.py fix: guard new conversation cold-start clicks 2026-05-18 06:48:05 -07:00
test_issue2540_models_endpoint_error.py test(stage-batch33): scope test_issue2540 urlopen recorder to broken.example 2026-05-28 02:57:04 +00:00
test_issue2542_anonymous_custom_endpoint.py fix(config): keep anonymous custom endpoints in picker when /v1/models probe fails 2026-05-18 19:28:46 +00:00
test_issue2545_xai_oauth_provider.py fix: add Grok OAuth provider catalog support 2026-05-18 19:51:01 -07:00
test_issue2551_project_picker_cache_refresh.py fix: refresh project move cache 2026-05-19 00:08:07 +00:00
test_issue2554_workspace_tree_file_indent.py fix: centralize workspace tree toggle width 2026-05-19 01:49:52 -07:00
test_issue2565_reasoning_accumulation.py fix(chat): reset reasoning accumulator per turn and prefer reasoning_content (closes #2565) 2026-05-24 04:08:40 +00:00
test_issue2569_model_provider_picker.py fix: preserve provider for configured model picker selections 2026-05-19 08:05:52 -07:00
test_issue2572_csrf_diagnostics.py fix(csrf): clarify rejection diagnostics 2026-05-24 15:52:34 +00:00
test_issue2592_partial_dedupe.py fix: dedupe tool-only partial recovery markers 2026-05-19 11:16:21 -07:00
test_issue2613_render_cache_signature.py Stage 397: PR #2692 — fix(ui): invalidate transcript cache on same-count content changes 2026-05-21 17:14:37 +00:00
test_issue2628_cli_sessions_perf.py fix: keep resumed CLI sessions in sidebar cap 2026-05-20 15:54:44 -07:00
test_issue2655_frontend.py fix: gate workspace artifact mutation paths 2026-05-25 08:51:44 +08:00
test_issue2661_2629_frontend.py Stage 397: PR #2671 — fix: SSE reconnect jitter + cron run row inline expansion 2026-05-21 17:13:59 +00:00
test_issue2679_hide_suggestions.py feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00:00
test_issue2713_streaming_segment_flush.py Tighten interim progress activity boundaries 2026-05-26 11:32:34 +08:00
test_issue2720_bedrock_model_picker.py fix(models): surface bedrock provider in WebUI model picker (#2720) 2026-05-24 03:42:13 +00:00
test_issue2762_state_sync_profile_kwarg.py test: cover metadata-only profile routing 2026-05-25 15:50:47 +08:00
test_issue2768_workspace_links.py fix(workspace): open rendered preview links correctly 2026-05-24 15:52:35 +00:00
test_issue2775_log_request.py fix: include client addresses in webui request logs 2026-05-26 21:45:27 +02:00
test_issue2785_gateway_cron_guidance.py fix(cron): surface gateway scheduling guidance 2026-05-24 15:52:35 +00:00
test_issue2821_session_pin_state_sync.py fix: exclude hidden snapshots from pin quota 2026-05-30 11:48:57 +02:00
test_issue2823_large_markdown_preview.py test: pin #3250 scroll-intent window + fix #2823 openFile anchor for #3262 2026-05-31 16:54:55 +00:00
test_issue2840_windows_hermes_home_defaults.py test: avoid global env-coupled defaults regression 2026-05-25 01:58:32 +00:00
test_issue2848_checkpoint_profile.py fix(streaming): preserve profile env for checkpoints 2026-05-25 21:29:06 +08:00
test_issue2863_session_index_prime.py perf(sessions): prime missing index in background 2026-05-25 21:21:20 +08:00
test_issue2867_tool_output_visual_distinction.py fix: restore legacy tool card visuals 2026-05-30 10:31:35 +02:00
test_issue2881_workspace_chat_links.py feat(chat): open workspace links in preview 2026-05-26 08:57:31 +08:00
test_issue2883_clarify_padding.py fix: reserve space for clarify dialogs 2026-05-25 15:58:27 +08:00
test_issue2901_csp_connect_extra.py feat(server): allow extra CSP connect sources 2026-05-25 21:48:52 +08:00
test_issue2905_windows_home_migration_safety.py fix(profiles): avoid config import cycle 2026-06-01 05:05:16 +00:00
test_issue2914_truncation_watermark.py fix(#3102): don't let persisted watermark permanently drop future state.db recovery rows 2026-06-01 18:14:48 +00:00
test_issue2931_edge_tts_endpoint.py test(#2931): pin auth OFF in the endpoint tests for suite-order determinism 2026-06-02 02:04:56 +00:00
test_issue2965_streaming_sessiondb_profile_home.py Fix streaming SessionDB profile path 2026-05-27 10:29:31 +08:00
test_issue2998_panel_primary_contrast.py Fix workspace save icon contrast 2026-05-27 19:17:46 +05:30
test_issue3012_3006_docker_docs.py docs: clarify docker host and home paths 2026-05-30 03:35:24 +00:00
test_issue3019_cron_project_sessions.py fix: keep agent cron sessions in project chips 2026-05-30 02:18:51 +00:00
test_issue3023_safe_session_id_validators.py fix(sessions): widen #3023 to all 5 session-id validators via shared is_safe_session_id helper 2026-05-28 02:09:05 +00:00
test_issue3040_reattach_focus_gate.py fix: allow current-pane SSE reconnect when unfocused 2026-05-28 09:02:06 +02:00
test_issue3066_disabled_read_profile.py fix: read skills disabled state from active profile 2026-05-29 23:21:48 +00:00
test_issue3066_profile_skill_disabled_state.py test(#3066): mark profile-skill tests requires_agent_modules (skill_utils import unavailable in CI) 2026-05-30 03:51:13 +00:00
test_issue3103_sse_no_connection_close.py test: pin #3103 — SSE event-stream handlers must not emit Connection: close (keep it for finite responses) 2026-05-30 02:08:37 +00:00
test_issue3145_opencode_shared_runtime_key.py fix: honor shared OpenCode key at runtime 2026-05-30 02:18:06 +00:00
test_issue3162_ensure_messages_loaded.py fix(#3162): const→let in _ensureMessagesLoaded (brick-class mobile TypeError) + ESLint runtime-error guard 2026-05-30 03:24:41 +00:00
test_issue3172_cron_session_limit.py fix: let cron sessions bypass CLI_VISIBLE_SESSION_LIMIT for project chips (#3172) 2026-05-30 23:25:41 +08:00
test_issue3194_gateway_configured_banner.py fix: apply Opus+Codex gate findings — stale-stopped not configured (#1944), narrow #2905 markers, scope except 2026-05-31 19:12:30 +00:00
test_issue3242_3214_i18n_tooltips.py fix: localize WebUI tooltip quick wins 2026-05-31 18:26:31 +00:00
test_issue3250_upward_scroll_intent_window.py feat: sticky manual unpin for streaming chat scroll (#3343) 2026-06-01 20:34:06 +00:00
test_issue3256_context_length_default_only_guard.py fix(#3263): provider-compatible default match — reject same-bare-name on different providers (Codex over-match MUST-FIX) 2026-06-01 01:19:49 +00:00
test_issue3262_artifact_path_canonicalization.py fix: canonicalize ./ and ~/ prefixes in _normalizeArtifactPath (#3262) 2026-05-31 17:03:07 +00:00
test_issue3283_profiles_config_import_order.py fix(profiles): avoid config import cycle 2026-06-01 05:05:16 +00:00
test_issue3306_loadsession_carry_forward.py fix: preserve ephemeral turn fields when loadSession force-reloads (#3313) 2026-06-01 19:38:00 +00:00
test_issue3319_pinned_scroll_jump.py stage-batch11: #3330 pinned-scroll + #3311 inline-math currency 2026-06-01 19:08:30 +00:00
test_issue3329_artifact_tool_metadata_guard.py fix(artifacts): guard malformed tool_calls entries in collectSessionArtifacts (#3329) 2026-06-01 17:27:02 +00:00
test_issue3337_workspace_preview_highlight.py fix(#3337): prevent Prism highlight leaking across workspace files 2026-06-01 21:56:26 +00:00
test_issue3360_multi_slash_model_collision.py fix: model picker snaps to wrong model with multi-slash IDs (#3360) 2026-06-02 05:08:30 +00:00
test_issue_1584_multitab_sse.py
test_issue_1932_goal_hook_unrelated_turns.py
test_issue_code_syntax_highlight.py
test_issue_progress_echo_dedupe.py fix(streaming): suppress visible progress echoes 2026-05-25 06:18:06 +02:00
test_issue_t16551f61_auth_token_churn_fingerprint.py docs(config): address PR #2964 review nits 2026-05-27 09:51:32 +08:00
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 fix: vendor math and yaml assets for CSP 2026-05-26 23:49:02 +02:00
test_kanban_bridge.py
test_kanban_ui_static.py Stage 383: PR #2530 2026-05-18 16:44:36 +00:00
test_katex_streaming.py fix: defer streaming KaTeX for pending equations 2026-05-28 08:56:34 +02:00
test_katex_vendored_assets.py fix: vendor math and yaml assets for CSP 2026-05-26 23:49:02 +02:00
test_korean_locale.py Fix profile-aware assistant display names 2026-05-19 07:17:11 -06:00
test_language_precedence.py
test_live_activity_timeline.py fix: harden webui passive performance paths 2026-05-30 01:39:54 +00:00
test_live_models_ttl_cache.py
test_live_stream_ux.py test: drop unused 're' import in test_live_stream_ux (ruff F401) 2026-06-01 20:21:40 +00:00
test_live_tool_callback_events.py fix: avoid duplicate live tool events 2026-05-19 18:41:08 -04:00
test_login_locale.py
test_login_locale_parity.py
test_logs_endpoint.py
test_logs_ui_static.py
test_markdown_table_cell_spacing.py
test_mcp_server.py
test_mcp_tools_list_overflow.py
test_media_inline.py iterate(stage-hi1): Nathan UX feedback — #3220 clean image+hover-download, #3337 uniform code bg, #3223 menu clip fix 2026-06-01 22:48:01 +00:00
test_memory_session_lifecycle_generation.py fix: close evicted agents from WebUI cache 2026-05-30 10:43:13 +02:00
test_message_timestamp_stamping.py fix(session): preserve subsecond message timestamp order 2026-05-28 19:58:18 +02:00
test_metadata_save_wipe_1558.py fix(session): rebuild missing startup index 2026-05-20 23:43:30 +08:00
test_minimax_provider.py
test_mobile_layout.py test: make .send-btn / .app-titlebar global-selector finders skin-variant-aware (#3164 Neon uses :root.dark[data-skin=]) 2026-05-30 04:32:18 +00:00
test_mobile_markdown_wrapping.py
test_model_cache_metadata.py
test_model_default_boot_precedence.py Stage 406: in-stage test fixes + CHANGELOG for v0.51.130 2026-05-24 19:17:59 +00:00
test_model_picker_badges.py
test_model_picker_escaping.py
test_model_resolver.py
test_model_scope_copy.py
test_model_selection_refresh_persistence.py Fix composer model picker opening lag 2026-05-22 16:58:55 +00:00
test_models_dev_reasoning.py test: add codex metadata=False case for reasoning efforts 2026-05-27 22:26:24 -06:00
test_native_image_attachments.py
test_new_chat_default_model_frontend.py fix(cursor-acp): route slash models and honor picker on new chat 2026-05-24 18:42:20 -06:00
test_norm_model_id_trailing_empty_guard.py fix: model picker snaps to wrong model with multi-slash IDs (#3360) 2026-06-02 05:08:30 +00:00
test_notify_on_complete_webui.py
test_nous_portal_routing.py
test_numpad_enter_submit.py fix: submit composer on numpad enter 2026-05-29 13:00:15 +08:00
test_offline_banner.py fix(chat): scope settled stream cleanup to source 2026-05-27 09:10:43 +02:00
test_offline_banner_theme.py
test_older_history_viewport_preservation.py perf(session): cumulative tail-window load for older history 2026-05-25 01:01:45 +00:00
test_ollama_model_chip_label_regression.py fix(webui): harden reasoning chip provider coverage 2026-05-24 18:42:44 -06:00
test_onboarding_existing_config.py
test_onboarding_mvp.py ci: run test suite in 3 parallel shards + make suite shard-safe 2026-05-30 21:09:25 +00:00
test_onboarding_network.py
test_onboarding_static.py
test_opencode_providers.py fix: detect shared OpenCode API key 2026-05-29 23:22:15 +00:00
test_orphaned_tool_messages.py
test_parallel_session_switch.py fix: reattach SSE on session-switch return + close leaked stream connections (#2925) 2026-05-28 02:48:17 +00:00
test_partial_bloat_fix.py Stage 399: PR #2704 — fix(streaming): prevent exponential empty _partial accumulation across reasoning-only cancellations 2026-05-21 17:56:46 +00:00
test_passkey_auth.py Stage-batch14: update passkey test for HERMES_WEBUI_PASSKEY feature flag 2026-05-25 00:17:11 +00:00
test_pdf_html_preview.py
test_performance_polling_hardening.py fix: harden webui passive performance paths 2026-05-30 01:39:54 +00:00
test_plugins_panel.py fix(#2622): plugin card UX — legible Open button, single badge, visible toggle + reject protocol-relative tab.path 2026-06-02 03:58:02 +00:00
test_pr1318_context_length_fallback.py fix(#3263): init _skip_cc_cl/_cc_cl before compressor block (UnboundLocalError on no-compressor path) + relax brittle #1318 source-assertion 2026-06-01 00:14:13 +00:00
test_pr1339_fallback_providers_list.py Fix WebUI fallback provider chain merging 2026-05-26 17:51:49 -07:00
test_pr1341_context_window_persistence.py fix(#3263): apply Codex dual-gate MUST-FIX — recompute persisted stale cap + rescale terminal threshold 2026-06-01 00:09:21 +00:00
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 feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00:00
test_pr1947_same_model_multiple_custom_providers.py
test_pr1970_lmstudio_base_url_fallback.py
test_pr2520_extract_attachment_dir.py fix(upload): scope archive extraction to per-session attachment dir 2026-05-18 21:22:02 +03:00
test_profile_default_workspace_823.py
test_profile_env_isolation.py ci: run test suite in 3 parallel shards + make suite shard-safe 2026-05-30 21:09:25 +00:00
test_profile_path_security.py
test_profile_skills_stats.py stage-batch10: #3327 model-id normalize + #3334 RFC slice doc + #3341 profile skill counts 2026-06-01 18:24:05 +00:00
test_profile_switch_1200.py
test_profile_switch_ux.py refactor 2026-05-21 07:41:08 -06:00
test_profile_terminal_env.py
test_project_chip_ui.py
test_provider_cost_history.py
test_provider_management.py
test_provider_mismatch.py fix(webui): harden reasoning chip provider coverage 2026-05-24 18:42:44 -06:00
test_provider_quota_status.py
test_provider_sort_order.py fix: remove xai from has_key test (CI env has no XAI_API_KEY) 2026-05-22 16:13:46 +00:00
test_pwa_manifest_csp.py
test_pwa_manifest_sw.py Stage 405: PR #2842 — feat: polish installed PWA startup by @AJV20 2026-05-24 18:28:52 +00:00
test_pwa_sidebar_swipe.py feat: add PWA sidebar edge swipe 2026-05-24 15:14:28 -04:00
test_pytest_config_isolation.py
test_pytest_execv_guard.py
test_pytest_state_isolation.py
test_quota_chip_settings_toggle.py feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00:00
test_quote_entity_mangling.py
test_raw_audio_upload.py fix(#3169): pin capture backend at mic start (_activeCaptureMode) — toggle-mid-record safety (Codex review #2) 2026-05-31 04:54:56 +00:00
test_real_steer.py
test_reasoning_chip_btw_fixes.py fix(ui): re-sync reasoning chip on model change with provider context 2026-05-24 18:42:44 -06:00
test_reasoning_chip_js_behaviour.py
test_reasoning_effort_model_capabilities.py fix(webui): harden reasoning chip provider coverage 2026-05-24 18:42:44 -06:00
test_reasoning_show_hide.py fix(reasoning): 推理强度补齐 max 档,与 hermes_constants 对齐 2026-05-29 03:05:02 +08:00
test_regressions.py fix: reattach SSE on session-switch return + close leaked stream connections (#2925) 2026-05-28 02:48:17 +00:00
test_renderer_comprehensive.py
test_renderer_js_behaviour.py fix(security/#3234 + #3219): case-fold deny checks + make bare file:// rewrite code-fence-aware (Codex review #5) 2026-05-31 03:17:10 +00:00
test_repair_workspace_user_turns.py
test_resolve_model_provider_free_suffix.py
test_ruff_forward_lint.py ci: forward-looking ruff lint gate (E9+F+B, new-code-only) (#3275) 2026-05-31 18:26:37 +00:00
test_run_journal.py fix(chat): classify interrupted response causes 2026-05-25 02:06:42 +02:00
test_run_journal_frontend_static.py
test_run_journal_routes.py fix: make SSE replay cursors run-aware 2026-05-30 04:09:20 +00:00
test_run_journal_streaming_static.py
test_run_lifecycle_health.py
test_runner_client.py harden: runner client rejects non-http(s) base_url + no redirect-follow (#3073) 2026-05-31 17:49:26 +00:00
test_runtime_adapter_seam.py stage-batch10: #3327 model-id normalize + #3334 RFC slice doc + #3341 profile skill counts 2026-06-01 18:24:05 +00:00
test_russian_locale.py
test_scheduled_jobs_profile_isolation.py address session event review 2026-05-20 14:33:36 -06:00
test_security_redaction.py Stage 382: PR #2500 (with whitespace polish on panels.js + ARCHITECTURE.md) 2026-05-18 03:45:02 +00:00
test_service_worker_api_cache.py Stage 405: PR #2842 — feat: polish installed PWA startup by @AJV20 2026-05-24 18:28:52 +00:00
test_session_action_menu_regression.py Merge remote-tracking branch 'origin/master' into fix/session-list-touch-actions 2026-05-28 13:03:55 -06:00
test_session_attention_badges.py refactor(sessions): simplify attention indicator to a color-coded dot 2026-05-30 19:54:51 +00:00
test_session_attention_sound.py feat: add distinct attention request sound 2026-05-30 19:40:40 +00:00
test_session_batch_select.py
test_session_cache_ownership.py Close evicted cached agents on identity mismatch 2026-05-30 19:25:51 -04:00
test_session_cli_scan_fast_path.py fix(session): route messaging metadata loads through display merge 2026-05-26 22:05:58 -07:00
test_session_copy_link_action.py feat: resolve session links in conversation filter 2026-05-30 19:13:49 +00:00
test_session_cross_tab_sync.py
test_session_db_sidecar_reconciliation.py
test_session_discoverability_audit.py fix: show lineage representative in discoverability audit 2026-05-28 08:13:35 +02:00
test_session_discoverability_invariants.py fix: preserve messageful sidebar discoverability 2026-05-27 23:42:24 +02:00
test_session_discoverability_repair.py fix: add dry-run discoverability safe repair 2026-05-28 08:19:49 +02:00
test_session_duplicate.py
test_session_duplicate_edit.py fix(session): copy all critical fields on duplicate and branch to prevent state loss 2026-05-30 01:19:50 +00:00
test_session_duplicate_fields.py fix(session): copy all critical fields on duplicate and branch to prevent state loss 2026-05-30 01:19:50 +00:00
test_session_endless_scroll.py
test_session_events.py tighten session refresh invalidation 2026-05-20 14:40:13 -06:00
test_session_events_http_integration.py Stage 393 follow-up: HTTP integration tests for /api/sessions/events (Opus advisor PR #2637) 2026-05-20 22:27:23 +00:00
test_session_import_cli_fallback_model.py fix(sidebar): keep newer continuation visible over older snapshot 2026-05-28 13:38:06 -06:00
test_session_import_cli_sse_refresh.py test: update sessions.js string-assertions for #3313 carry-forward rename 2026-06-01 19:46:36 +00:00
test_session_import_workspace_validation.py
test_session_index.py fix: speed up session index metadata refresh 2026-05-29 23:21:48 +00:00
test_session_jump_buttons.py
test_session_lineage_collapse.py feat: resolve session links in conversation filter 2026-05-30 19:13:49 +00:00
test_session_lineage_full_transcript.py
test_session_lineage_metadata_api.py fix: keep webui mirrored sessions out of cli filter 2026-05-28 00:51:12 +02:00
test_session_lineage_report.py
test_session_lost_response_regression.py fix(helpers): use ssl.SSLError instead of broad OSError in disconnect tuple 2026-05-31 01:56:39 +00:00
test_session_message_window_renderable_tail.py Fix empty partial activity tail recency 2026-05-28 15:30:49 +08:00
test_session_metadata_cli_lookup.py
test_session_metadata_fast_path.py Stage 406: in-stage test fixes + CHANGELOG for v0.51.130 2026-05-24 19:17:59 +00:00
test_session_model_resolution_on_load.py fix: keep session switch metadata non-blocking 2026-05-26 16:40:35 +08:00
test_session_ops.py
test_session_recovery_api.py
test_session_recovery_audit.py
test_session_rename_lifecycle.py
test_session_rotate_url_sync.py fix: filter interrupted recovery control text from visible transcript (#3321) 2026-06-01 20:07:16 +00:00
test_session_runtime_ownership_invariants.py fix: preserve clarify fallback ownership 2026-05-28 08:35:26 -04:00
test_session_save_mode.py
test_session_search_bfcache_822.py
test_session_sidebar_relative_time.py
test_session_sidecar_repair.py fix(chat): avoid false restart wording for interrupted responses 2026-05-25 02:06:42 +02:00
test_session_static_assets.py
test_session_summary_redaction.py test: keep redaction fixture visible in session index 2026-05-28 09:52:42 +02:00
test_session_tail_payload.py fix: avoid double rebasing legacy tool cards 2026-05-30 16:10:52 +02:00
test_session_title_regenerate_controls.py feat: add manual session title regeneration (#3223, @AJV20) 2026-06-01 21:39:51 +00:00
test_session_touch_actions.py Merge remote-tracking branch 'origin/master' into fix/session-list-touch-actions 2026-05-28 13:03:55 -06:00
test_settings_navigation_and_detail_refresh.py
test_shutdown_audit_logging.py fix: log WebUI shutdown diagnostics 2026-05-28 23:22:31 +02:00
test_sidebar_collapse_toggle.py
test_sidebar_completion_dedupe.py fix: dedupe sidebar completion session ids 2026-05-30 18:19:34 +02:00
test_sidebar_first_turn_visibility.py fix: show cron sessions in project filter 2026-05-28 08:10:15 -04:00
test_sidebar_search_highlights.py fix: scope conversation filter clear search CSS 2026-05-30 00:52:29 +00:00
test_sidebar_tab_visibility.py feat(i18n): add Turkish (tr) locale support 2026-05-24 17:13:34 +00:00
test_sidebar_tooltips.py fix: localize WebUI tooltip quick wins 2026-05-31 18:26:31 +00:00
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 Fix skills detail markdown styling with preview-md wrapper 2026-05-31 23:02:23 +00:00
test_skill_usage.py fix: remove webui-side writer to avoid conflict with agent 2026-05-27 20:57:32 +08:00
test_skills_category_collapse.py
test_skills_toggle.py feat: add per-skill enable/disable toggle in Skills panel 2026-05-22 19:43:00 +00:00
test_smooth_text_fade.py fix: cap stream fade done drain 2026-05-17 00:27:54 -07:00
test_soul_memory.py Stage 382: PR #2500 (with whitespace polish on panels.js + ARCHITECTURE.md) 2026-05-18 03:45:02 +00:00
test_spanish_locale.py
test_sprint1.py fix duplicate chat upload filenames 2026-05-25 17:48:19 +00:00
test_sprint2.py
test_sprint3.py
test_sprint4.py
test_sprint5.py fix: preserve tilde workspace suggestions 2026-05-30 11:35:05 +02:00
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
test_sprint19.py
test_sprint20.py
test_sprint20b.py test: make .send-btn / .app-titlebar global-selector finders skin-variant-aware (#3164 Neon uses :root.dark[data-skin=]) 2026-05-30 04:32:18 +00:00
test_sprint23.py
test_sprint26.py
test_sprint27.py
test_sprint28.py
test_sprint29.py Fix CSRF test isolation 2026-05-18 07:27:31 +08:00
test_sprint30.py fix: distinguish identical clarify prompts by id 2026-05-31 14:12:15 +09:00
test_sprint31.py test: update _write_endpoint_to_config tests for api_key→.env migration 2026-05-28 16:07:13 +08:00
test_sprint32.py
test_sprint33.py
test_sprint34.py
test_sprint35.py
test_sprint36.py Fix profile-aware assistant display names 2026-05-19 07:17:11 -06:00
test_sprint37.py
test_sprint38.py
test_sprint39.py
test_sprint40.py
test_sprint40_ui_polish.py Optimize profile switching and session list loading 2026-05-20 08:47:49 -06:00
test_sprint41.py
test_sprint42.py Update SessionDB injection invariant 2026-05-27 10:38:40 +08:00
test_sprint43.py
test_sprint44.py
test_sprint45.py
test_sprint46.py
test_sprint47.py
test_sprint48.py
test_sprint49.py fix: stop replaying reasoning-only history 2026-05-18 10:50:42 -07:00
test_sprint50.py
test_sprint51.py
test_stage268_opus_followups.py
test_stage299_opus_fixes.py
test_stage302_config_override_regression.py
test_stage326_composer_draft_validation.py fix: harden webui passive performance paths 2026-05-30 01:39:54 +00:00
test_stage326_pending_goal_continuation_race.py
test_stage364_opus_live_sse_event_id.py
test_stale_empty_session_restore.py Stamp CHANGELOG for v0.51.119 (Release CQ / stage-batch1 / 3-PR low-risk batch) 2026-05-24 03:26:45 +00:00
test_stale_stream_cleanup.py
test_stale_stream_pending_recovery.py
test_stale_stream_writeback.py fix: avoid interruption marker for completed journal runs 2026-05-28 15:19:09 +02:00
test_state_db_worktree_recovery.py
test_static_asset_compression_and_cache.py fix(static): tighten cache validators and 304 headers 2026-05-24 04:26:46 +00:00
test_static_js_runtime_lint.py fix(#3162): const→let in _ensureMessagesLoaded (brick-class mobile TypeError) + ESLint runtime-error guard 2026-05-30 03:24:41 +00:00
test_status_command_card.py
test_streaming_agent_cache_lifecycle.py test(#3218): extend cache-eviction lock-discipline guard to the self-heal site (Opus NIT) 2026-05-31 00:26:59 +00:00
test_streaming_katex_live_render.py fix: defer streaming KaTeX for pending equations 2026-05-28 08:56:34 +02:00
test_streaming_live_usage_estimate.py fix: cap live tool prompt estimate per turn 2026-05-25 16:04:40 +08:00
test_streaming_markdown.py fix: keep underscores literal while streaming 2026-05-24 19:02:58 -07:00
test_streaming_max_tokens_quota.py
test_streaming_race_fix.py absorb #3201: set _streamFinalized immediately in SSE done handler (closes #3195) 2026-05-31 00:07:39 +00:00
test_streaming_session_sidebar.py
test_streaming_sidebar_scroll.py
test_subpath_frontend_routes.py
test_svg_audio_video_rendering.py
test_symlink_cycle_detection.py
test_tars_scroll_reset_regressions.py feat: sticky manual unpin for streaming chat scroll (#3343) 2026-06-01 20:34:06 +00:00
test_terminal_linux_lifecycle.py stage-batch26: skip test_terminal_survives_short_lived_request_thread (timing flaky) 2026-05-27 04:48:21 +00:00
test_terminal_process_cleanup.py test: skip terminal cleanup collection on non-posix 2026-05-31 04:33:11 +00:00
test_theme_color_meta_bridge.py
test_title_aux_routing.py test: cover code-only title language fallback 2026-05-30 01:06:04 +00:00
test_title_sanitization.py
test_tls_support.py
test_tool_call_history_paging.py test: update sessions.js string-assertions for #3313 carry-forward rename 2026-06-01 19:46:36 +00:00
test_tool_call_persistence.py
test_tool_card_preview_summary.py fix(#3267): harden collapsed tool-preview secret filter (Codex gate MUST-FIX) 2026-05-31 19:21:15 +00:00
test_tool_snippet_limit_parity.py Add regression test for JS/Python snippet limit parity 2026-05-29 16:12:05 +08:00
test_ttl_cache.py
test_turkish_locale.py fix(i18n): correct double-escaped ellipsis in Turkish locale 2026-05-24 17:13:34 +00:00
test_turn_duration_display.py
test_turn_journal.py
test_turn_journal_callsite.py
test_turn_journal_lifecycle.py fix: handle Windows media and turn journal edge cases 2026-05-30 11:15:35 +02:00
test_turn_journal_lifecycle_callsite.py
test_ui_card_animation.py feat: add thinking card copy button 2026-05-17 03:57:54 -07:00
test_ui_tool_call_cleanup.py Tighten interim progress activity boundaries 2026-05-26 11:32:34 +08:00
test_uiux_docs_theme_contract.py docs: align uiux demo theme controls 2026-05-18 12:50:25 +08:00
test_update_apply_ui.py fix: block update apply without targets 2026-05-25 08:51:44 +08:00
test_update_banner_fixes.py fix(updates): fall through when release tag is not ff-reachable 2026-05-31 16:18:06 +00:00
test_update_check_ui.py Stage 400: PR #2717 — fix: surface update check fetch errors instead of failing silently 2026-05-21 22:59:54 +00:00
test_update_checker.py refine swipe action reveal timing 2026-05-28 12:47:55 -06:00
test_updates.py fix(updates): fall through when release tag is not ff-reachable 2026-05-31 16:18:06 +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 fix: close evicted agents from WebUI cache 2026-05-30 10:43:13 +02:00
test_v050260_docker_invariants.py docs: clarify Docker localhost and sudo compose setup 2026-05-28 08:39:59 +02:00
test_version_badge.py fix: hash dirty WebUI dev builds 2026-05-30 11:25:33 +02:00
test_voice_transcribe_endpoint.py
test_webui_external_refresh_frontend.py tighten session refresh invalidation 2026-05-20 14:40:13 -06:00
test_webui_gateway_chat_backend.py fix: carry WebUI reply polish into gateway chat 2026-06-01 04:42:23 +00:00
test_webui_notes_sources.py fix(#3210 review): convert bare urlopen TimeoutError to ValueError in _joplin_api_get 2026-05-31 01:57:29 +00:00
test_webui_platform_hint.py
test_webui_prefill_context.py Merge PR #3094 2026-05-28 19:51:29 +00:00
test_webui_runtime_diagnostics.py feat(health): expose WebUI stream runtime diagnostics 2026-05-19 22:48:10 +00:00
test_webui_state_db_context_reconciliation.py fix(webui): preserve reconciled session invariants 2026-05-19 08:02:43 +00:00
test_webui_state_db_reconciliation.py fix: keep session switch metadata non-blocking 2026-05-26 16:40:35 +08:00
test_webui_surface_context.py fix: keep WebUI reply guidance language-neutral 2026-06-01 04:42:23 +00:00
test_window_function_collision.py fix(chat): rename _inflightStateLimits() to _getInflightStateLimits() to fix v0.51.117 collision 2026-05-22 23:17:00 +00:00
test_workspace_add_quote_strip.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 feat(workspace): add backend Git operations 2026-05-20 04:51:41 +00:00
test_workspace_display_prefix.py fix: hide attachment path markers in chat UI 2026-06-01 05:31:53 +00:00
test_workspace_files_persist_on_empty_reload.py
test_workspace_git.py Merge remote-tracking branch 'origin/master' into HEAD 2026-05-28 14:50:33 -04:00
test_workspace_inaccessible_paths.py
test_workspace_panel_persists_on_empty_boot.py
test_workspace_panel_session_list.py feat: surface session attention badges 2026-05-30 19:18:13 +00:00
test_workspace_preview_preserved_on_stream_done.py Reload open workspace preview when agent mutates that file 2026-05-31 16:54:22 +00:00
test_workspace_stale_recovery.py
test_workspace_tree_rename.py
test_workspace_upload.py refine(hotfix): Opus SHOULD-FIX — drop redundant equality clause + tighten symlink test 2026-06-02 02:28:44 +00:00
test_worktree_remove.py