HERMES-GIELIE/tests
franksong2702 692ba68e42
fix(title): strip markdown labels and skip empty placeholders in auto-title (#611)
Squash-merges PR #611 (@franksong2702). Fixes two edge cases in auto-generated session titles.

1. Strip Markdown labels (`**Session Title:**`, `Title:`) from sanitizer output — these were being persisted verbatim when the LLM emitted them.
2. Skip empty assistant tool-call placeholder messages when extracting the first exchange for title generation — previously the empty row could be latched onto instead of the first real answer.

Also tightens the title prompt to explicitly forbid Markdown, bullets, and label prefixes.

1371 tests passing, QA harness green.

Co-authored-by: Frank Song <franksong2702@gmail.com>
2026-04-16 18:51:00 -07:00
..
__init__.py Hermes WebUI v0.1.0 — initial public release 2026-03-30 20:40:19 -07:00
_pytest_port.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
conftest.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_approval_queue.py fix: queue simultaneous approval requests per session (fixes #527) 2026-04-15 19:16:14 +00:00
test_approval_unblock.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_auth_sessions.py fix(auth): prune expired sessions on every verify to prevent memory leak (#196) 2026-04-09 18:05:23 -07:00
test_batch_fixes.py test: add 22 tests covering batch fixes v0.50.47 (#506-#521) 2026-04-15 07:47:18 +00:00
test_bugbatch_apr2026.py fix: light theme dialogs, workspace panel snap, model cache staleness, docker-compose docs — v0.50.68 2026-04-16 11:55:18 -07:00
test_cancel_interrupt.py v0.46.0: security, Docker UID/GID, model discovery, i18n, cancel fix 2026-04-11 10:17:52 -07:00
test_chinese_locale.py fix i18n review comments and locale test robustness 2026-04-14 17:14:01 +00:00
test_clarify_unblock.py feat: harden clarify dialog flow and refresh recovery 2026-04-15 13:10:50 +08:00
test_custom_provider_display_name.py fix(models): show named custom provider label in model dropdown instead of generic 'Custom' 2026-04-16 01:09:39 +00:00
test_default_workspace_fallback.py fix: HERMES_WEBUI_DEFAULT_WORKSPACE wins over settings.json; trust DEFAULT_WORKSPACE subtree (#610) 2026-04-16 18:09:16 -07:00
test_gateway_sync.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_ime_composition.py test: loosen IME guard regression assertions 2026-04-15 23:21:56 +08:00
test_issue336.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_issue341.py fix: add table styles to .msg-body for readable bordered chat tables (fixes #341) (#345) 2026-04-13 00:08:30 -07:00
test_issue342.py fix(renderer): prevent double-linking and esc() corruption in renderMd() 2026-04-14 21:13:33 +00:00
test_issue347.py feat: KaTeX math rendering for LaTeX in chat + workspace previews (#352) 2026-04-13 11:40:15 -07:00
test_issue357.py fix: Docker uv pre-install at build time + workspace permissions (#365) 2026-04-13 12:36:11 -07:00
test_issue401.py feat: redesign chat transcript + fix streaming/persistence lifecycle — v0.50.70 (PR #587 by @aronprins) 2026-04-16 14:04:42 -07:00
test_issue470.py fix(renderer): backtick code spans inside bold/italic no longer get esc'd 2026-04-14 21:14:00 +00:00
test_issue477.py fix(csp): allow cdn.jsdelivr.net for font-src so KaTeX fonts load (fixes #477) 2026-04-14 21:14:33 +00:00
test_issue486_487.py fix: code-in-table CSS sizing + markdown image rendering (#486, #487) 2026-04-14 21:52:34 +00:00
test_issue487b.py fix(review): 4 issues found in agent review of PR #535 2026-04-16 00:00:22 +00:00
test_issue569_579.py fix: Docker UID/GID auto-detect from workspace mount + message count tests — v0.50.69 2026-04-16 12:19:25 -07:00
test_issue572.py feat: MCP toolsets in WebUI + onboarding fix for non-standard providers — v0.50.63 2026-04-15 23:39:07 -07:00
test_issue609.py fix: HERMES_WEBUI_DEFAULT_WORKSPACE wins over settings.json; trust DEFAULT_WORKSPACE subtree (#610) 2026-04-16 18:09:16 -07:00
test_issue_code_syntax_highlight.py feat(ui): remove mobile bottom nav on phones 2026-04-14 17:13:03 +00:00
test_issues_373_374_375.py chore: update OpenRouter and provider model lists 2026-04-15 22:20:25 +00:00
test_language_precedence.py fix i18n review comments and locale test robustness 2026-04-14 17:14:01 +00:00
test_login_locale.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_media_inline.py feat: support subpath mount via reverse proxy — v0.50.67 (PR #588 by @vcavichini) 2026-04-16 11:20:08 -07:00
test_mobile_layout.py feat(ui): remove mobile bottom nav on phones 2026-04-14 17:13:03 +00:00
test_model_resolver.py fix(routing): strip provider prefix from model ID when custom base_url is configured (fixes #433) 2026-04-14 19:06:35 +00:00
test_onboarding_existing_config.py fix: HERMES_WEBUI_SKIP_ONBOARDING unconditional + guard against config writes + 10 skipped tests fixed — v0.50.65 2026-04-16 10:19:10 -07:00
test_onboarding_mvp.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_onboarding_network.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_onboarding_static.py feat: support subpath mount via reverse proxy — v0.50.67 (PR #588 by @vcavichini) 2026-04-16 11:20:08 -07:00
test_opencode_providers.py fix: delegate all live model fetching to agent provider_model_ids() (#411) 2026-04-13 22:57:58 -07:00
test_orphaned_tool_messages.py fix: strip orphaned tool messages before sending history to API (fixes #534) 2026-04-15 16:57:31 +00:00
test_profile_env_isolation.py fix: isolate profile .env secrets on switch (#351) 2026-04-13 00:51:55 -07:00
test_profile_path_security.py v0.50.25: mobile scroll, import timestamps, profile security, mic fallback (#404) 2026-04-13 22:11:45 -07:00
test_provider_mismatch.py fix: show toast when model is switched during active session (#419) 2026-04-15 08:04:03 +00:00
test_regressions.py feat: redesign chat transcript + fix streaming/persistence lifecycle — v0.50.70 (PR #587 by @aronprins) 2026-04-16 14:04:42 -07:00
test_security_redaction.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_session_sidebar_relative_time.py chore: CHANGELOG + v0.50.64 badge + Today-bucket test (post-merge follow-up for #584) 2026-04-16 10:09:51 -07:00
test_session_summary_redaction.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_spanish_locale.py feat(i18n): add Spanish locale for WebUI (#275) 2026-04-11 20:06:37 -07:00
test_sprint1.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint2.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint3.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint4.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint5.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint6.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint7.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint8.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint9.py feat: support subpath mount via reverse proxy — v0.50.67 (PR #588 by @vcavichini) 2026-04-16 11:20:08 -07:00
test_sprint10.py feat: support subpath mount via reverse proxy — v0.50.67 (PR #588 by @vcavichini) 2026-04-16 11:20:08 -07:00
test_sprint11.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint12.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint13.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint14.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint15.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint16.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint17.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint19.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint20.py feat: support subpath mount via reverse proxy — v0.50.67 (PR #588 by @vcavichini) 2026-04-16 11:20:08 -07:00
test_sprint20b.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint23.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint26.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint27.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint28.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint29.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint30.py feat: harden clarify dialog flow and refresh recovery 2026-04-15 13:10:50 +08:00
test_sprint31.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint32.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint33.py v0.47.0: dialogs, session menu, /skills, mobile fixes, mobile QA suite 2026-04-11 12:19:12 -07:00
test_sprint34.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_sprint35.py fix+feat: session title guard + breadcrumb nav + wider panel + responsive msgs (closes #300, #292) 2026-04-12 10:51:48 -07:00
test_sprint36.py fix: expand test_sprint36 search window for setBusy after stopClarifyPolling additions 2026-04-15 07:24:53 +00:00
test_sprint37.py feat: redesign chat transcript + fix streaming/persistence lifecycle — v0.50.70 (PR #587 by @aronprins) 2026-04-16 14:04:42 -07:00
test_sprint38.py fix: strip think tags when model emits leading whitespace before <think> (#327) 2026-04-12 14:07:00 -07:00
test_sprint39.py fix: HERMES_WEBUI_SKIP_ONBOARDING unconditional + guard against config writes + 10 skipped tests fixed — v0.50.65 2026-04-16 10:19:10 -07:00
test_sprint40.py feat: OAuth provider onboarding path — Codex/Copilot no longer blocks setup (#331) 2026-04-12 14:28:16 -07:00
test_sprint40_ui_polish.py fix(sidebar): declutter session items — drop message count, model, and source-tag badges (v0.50.64) 2026-04-16 09:58:53 -07:00
test_sprint41.py feat(sessions): auto-summarize provisional session titles 2026-04-15 23:59:36 +00:00
test_sprint42.py feat: redesign chat transcript + fix streaming/persistence lifecycle — v0.50.70 (PR #587 by @aronprins) 2026-04-16 14:04:42 -07:00
test_sprint43.py security: bandit fixes B310/B324/B110 + QuietHTTPServer (#354) 2026-04-13 11:11:56 -07:00
test_sprint44.py fix: workspace panel close button — no duplicate X on desktop, mobile X respects file preview (#414) 2026-04-13 23:25:26 -07:00
test_sprint45.py fix(tests): auto-derive unique port+state-dir per worktree (fixes parallel pytest) 2026-04-14 19:04:48 +00:00
test_title_sanitization.py fix(title): strip markdown labels and skip empty placeholders in auto-title (#611) 2026-04-16 18:51:00 -07:00
test_tls_support.py feat: optional HTTPS/TLS support via cert and key env vars (#199) 2026-04-09 18:08:29 -07:00
test_tool_call_persistence.py feat: redesign chat transcript + fix streaming/persistence lifecycle — v0.50.70 (PR #587 by @aronprins) 2026-04-16 14:04:42 -07:00
test_ui_card_animation.py feat: redesign chat transcript + fix streaming/persistence lifecycle — v0.50.70 (PR #587 by @aronprins) 2026-04-16 14:04:42 -07:00
test_update_checker.py v0.44.0: approval fix, login CSP, update diagnostics, Lucide icons 2026-04-10 10:02:28 -07:00
test_updates.py fix: improve self-update git pull diagnostics (#287) 2026-04-12 00:19:33 -07:00
test_voice_transcribe_endpoint.py v0.50.25: mobile scroll, import timestamps, profile security, mic fallback (#404) 2026-04-13 22:11:45 -07:00