HERMES-GIELIE/tests
nesquena-hermes 2800ebdcff
fix(workspace): allow adding external paths not under home directory (#991)
The workspace add endpoint used resolve_trusted_workspace() which blocks any path
outside the user's home directory, the saved workspace list, or BOOT_DEFAULT_WORKSPACE.
This created a circular dependency: to add /mnt/d/Projects you need it in the saved
list, but to get it in the list you need to add it.

Fix: introduce validate_workspace_to_add() used by /api/workspaces/add, which only
blocks non-existent paths, non-directories, and known system roots. The stricter
resolve_trusted_workspace() is still used for actual file operations within a workspace.

Fixes #953.

Co-authored-by: nesquena-hermes <nesquena-hermes@users.noreply.github.com>
2026-04-24 13:04:36 -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): restore conftest default model in test_default_model_updates_hermes_config — fixes CI ordering failure 2026-04-21 02:25:14 +00:00
conftest.py perf: TTL cache for model list + incremental session index (#780) 2026-04-21 00:33:03 +00:00
test_745_code_block_newlines.py fix(renderer): preserve newlines in code blocks during paragraph split (#745) (#746) 2026-04-20 00:04:27 -07:00
test_886_ordered_list_numbering.py fix(renderer): ordered list items always showed 1. — emit value= on each li (#886) (#904) 2026-04-23 12:15:56 -07: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_session_persistence.py fix(auth): persist sessions across restarts via STATE_DIR/.sessions.json (#962) 2026-04-24 11:21:41 -07: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_background_tasks.py fix(background): wire completion hook + keep running tasks in tracker 2026-04-24 01:32:47 +00:00
test_batch_fixes.py refactor(ui): three-column layout with left rail + main-view migration (#899) 2026-04-24 09:05:25 -07:00
test_bootstrap_dotenv.py fix: bootstrap.py loads REPO_ROOT/.env so direct invocation matches start.sh (#730) (#791) 2026-04-20 20:55:53 -07:00
test_bugbatch_apr2026.py fix(ux): selected text visible in user message bubbles + CI i18n fix — v0.50.160 (PR #877 by @pavolbiely) 2026-04-23 01:19:21 +00:00
test_byok_model_dropdown.py fix(settings): show live models in default model picker and apply to new chats (#872) (#900) 2026-04-23 09:58:15 -07:00
test_cancel_interrupt.py fix(streaming): eagerly release session lock in cancel_stream() (#778) 2026-04-20 23:54:40 +00: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_cmd_dropdown_scroll_838.py fix(ui): scroll selected item into view on slash command dropdown keyboard navigation (closes #838) 2026-04-21 22:55:09 -07:00
test_commands_endpoint.py feat: slash command parity + skill autocomplete — v0.50.91 (PR #711) 2026-04-19 05:37:44 +00:00
test_credential_pool_providers.py release: v0.50.151 — credential_pool provider detection + Ollama Cloud support (PR #820 by @starship-s) 2026-04-22 20:18:02 +00:00
test_cron_refresh_button_835.py refactor(ui): three-column layout with left rail + main-view migration (#899) 2026-04-24 09:05:25 -07:00
test_custom_provider_display_name.py fix(tests): add autouse cache-isolation fixture to get_available_models test files 2026-04-21 17:41:05 -07: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_font_size_setting.py fix(appearance): font size setting now visibly scales UI text (closes #843) 2026-04-21 23:39:39 -07:00
test_gateway_sync.py fix(sessions): surface gateway SSE failures and add polling fallback (#828) 2026-04-21 21:18:55 -07:00
test_ime_composition.py test: loosen IME guard regression assertions 2026-04-15 23:21:56 +08:00
test_issue341.py feat(theme): replace color scheme system with light/dark + accent skins (PR #627 by @aronprins) 2026-04-18 06:37:09 +00: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: add --chown to Dockerfile COPY so RUN can write api/_version.py (#793) 2026-04-20 21:03:41 -07:00
test_issue401.py fix: harden _accepts_gzip + update stale test assertions post-#959 (#981) 2026-04-24 11:41:17 -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 feat(ui): add sidebar density mode to session list (#764) 2026-04-20 19:43:40 +00:00
test_issue570_permission.py fix: catch OSError from SETTINGS_FILE.exists() — Docker UID-mismatch 500 crash (#614) 2026-04-16 20:16:07 -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_issue607.py fix(streaming): strip Gemma 4 thinking token delimiter in all paths — closes #607 2026-04-18 06:45:39 +00: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_issue616.py refactor(ui): three-column layout with left rail + main-view migration (#899) 2026-04-24 09:05:25 -07:00
test_issue632.py feat(reasoning): full /reasoning CLI parity — show|hide + effort levels via config.yaml (#812) 2026-04-21 15:26:52 -07:00
test_issue634.py fix(sessions): surface get_cli_sessions() failures via logger.warning (#769) 2026-04-20 23:13:54 +00:00
test_issue644.py fix(tests): add autouse cache-isolation fixture to get_available_models test files 2026-04-21 17:41:05 -07:00
test_issue646.py fix(config): default model empty string — no unavailable OpenAI model for non-OpenAI users — closes #646 (PR #649) 2026-04-18 06:46:43 +00:00
test_issue660.py fix(ui): persist session queue to sessionStorage across page refresh (#768) 2026-04-20 23:04:09 +00:00
test_issue673.py feat(ui): add sidebar density mode to session list (#764) 2026-04-20 19:43:40 +00:00
test_issue677.py fix: streaming scroll override, Gemini 3.x models, read-only workspace, two-container UID — v0.50.87 (closes #677 #669 #670 #668) 2026-04-18 17:09:59 +00:00
test_issue739_652_653.py fix(streaming): quota error detection, error persistence, stream_end session_id fix (#767) 2026-04-20 22:48:19 +00:00
test_issue744.py fix(ui): restrict edit to latest user message (#747) 2026-04-19 23:11:49 -07:00
test_issue765_streaming_persistence.py fix: harden session persistence and per-session lock handling during streaming (v0.50.175, #910) (#910) 2026-04-23 14:25:43 -07:00
test_issue781.py fix(ui): hide duplicate close button in workspace header at mobile width (#783) 2026-04-21 00:58:02 +00:00
test_issue789.py fix(sessions): new sessions appear immediately in sidebar (#806) 2026-04-21 17:08:52 +00:00
test_issue798.py feat(ui): session attention indicators — streaming spinner, unread dot, timestamps (#856) 2026-04-23 09:05:57 -07:00
test_issue803.py fix: correct webui profile switching state — v0.50.150 (PR #849 by @migueltavares) 2026-04-22 16:27:01 +00:00
test_issue840_slash_echo.py fix(ui): slash command input now echoed as user message in chat (closes #840) 2026-04-21 23:08:24 -07:00
test_issue852_thinking_card_mirror.py fix: thinking card no longer mirrors main response — v0.50.154 (closes #852) 2026-04-22 20:21:42 +00:00
test_issue854_live_model_prefix.py fix(settings): show live models in default model picker and apply to new chats (#872) (#900) 2026-04-23 09:58:15 -07:00
test_issue856_active_session_read_state.py feat(ui): session attention indicators — streaming spinner, unread dot, timestamps (#856) 2026-04-23 09:05:57 -07:00
test_issue856_pinned_indicator_layout.py feat(ui): session attention indicators — streaming spinner, unread dot, timestamps (#856) 2026-04-23 09:05:57 -07:00
test_issue856_session_streaming_state.py feat(ui): session attention indicators — streaming spinner, unread dot, timestamps (#856) 2026-04-23 09:05:57 -07:00
test_issue893_cancel_preserves_partial.py fix(cancel): preserve partial streamed response on Stop Generation (#893) (#902) 2026-04-23 11:16:59 -07:00
test_issue895_894_nous_prefix.py fix(models): preserve @nous: prefix in settings + fix cross-namespace 404 for Nous (#895 #894) (#901) 2026-04-23 10:44:10 -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 fix(streaming): quota error detection, error persistence, stream_end session_id fix (#767) 2026-04-20 22:48:19 +00:00
test_issues_853_857.py fix: image_generate renders inline + auto-title strips thinking preamble — v0.50.152 (closes #853, #857) 2026-04-22 20:20:01 +00:00
test_issues_907_908_909_model_dropdown.py fix(models): duplicate dropdown entries, stale default model, lowercase injected label (#907 #908 #909) (#918) 2026-04-23 14:41:06 -07: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 feat: add full Russian (ru-RU) localization — v0.50.95 (PR #713) 2026-04-19 06:47:24 +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_minimax_provider.py fix(tests): add autouse cache-isolation fixture to get_available_models test files 2026-04-21 17:41:05 -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(tests): pin _cfg_mtime=0.0 in except so CI reload_config() guard works 2026-04-21 17:49:10 -07:00
test_nous_portal_routing.py fix: Nous static models use @nous: prefix — v0.50.164 (#885) 2026-04-22 22:56:21 -07:00
test_ollama_model_chip_label_regression.py release: v0.50.151 — credential_pool provider detection + Ollama Cloud support (PR #820 by @starship-s) 2026-04-22 20:18:02 +00:00
test_onboarding_existing_config.py fix: persist onboarding_completed for CLI-configured users on first chat_ready (#922) 2026-04-23 15:46:02 -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(tests): add autouse cache-isolation fixture to get_available_models test files 2026-04-21 17:41:05 -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_default_workspace_823.py fix(workspace): _profileDefaultWorkspace persists after newSession() (#823) 2026-04-21 19:14:31 -07:00
test_profile_env_isolation.py fix(ci): eliminate test_set_key flakiness — v0.50.161 2026-04-23 02:09:37 +00:00
test_profile_path_security.py fix(ci): eliminate test_set_key flakiness — v0.50.161 2026-04-23 02:09:37 +00:00
test_provider_management.py fix(ci): eliminate test_set_key flakiness — v0.50.161 2026-04-23 02:09:37 +00:00
test_provider_mismatch.py fix: keep GET /api/session side-effect free for stale models — v0.50.149 (PR #848 by @franksong2702) 2026-04-22 16:26:48 +00:00
test_pwa_manifest_csp.py fix(csp): add explicit manifest-src 'self' directive (#961) 2026-04-24 10:44:46 -07:00
test_pwa_manifest_sw.py feat: add PWA support (manifest, service worker, install prompt) (#920) 2026-04-23 15:14:21 -07:00
test_quote_entity_mangling.py fix(renderer): stop &quot; mangling inside code blocks (#801) 2026-04-21 16:26:51 +00:00
test_reasoning_chip_btw_fixes.py v0.50.185: /btw stream hardening + .venv bootstrap + /reasoning toast (#935 #939 #941 #942) 2026-04-23 23:25:45 -07:00
test_reasoning_show_hide.py feat(reasoning): full /reasoning CLI parity — show|hide + effort levels via config.yaml (#812) 2026-04-21 15:26:52 -07:00
test_regressions.py fix(queue): drain correct session queue after cross-session stream completion (#964) 2026-04-24 12:33:56 -07:00
test_russian_locale.py feat: add full Russian (ru-RU) localization — v0.50.95 (PR #713) 2026-04-19 06:47:24 +00: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_index.py fix: harden session persistence and per-session lock handling during streaming (v0.50.175, #910) (#910) 2026-04-23 14:25:43 -07:00
test_session_ops.py feat: slash command parity + skill autocomplete — v0.50.91 (PR #711) 2026-04-19 05:37:44 +00:00
test_session_search_bfcache_822.py fix(ui): clear session search on boot + autocomplete=off + pageshow bfcache handler (closes #822) 2026-04-21 22:11:32 -07: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_settings_navigation_and_detail_refresh.py refactor(ui): three-column layout with left rail + main-view migration (#899) 2026-04-24 09:05:25 -07: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(workspace): allow adding external paths not under home directory (#991) 2026-04-24 13:04:36 -07: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 feat(workspaces): autocomplete trusted workspace paths — v0.50.162 (PR #880 by @franksong2702, closes #616) 2026-04-23 02:35:58 +00:00
test_sprint6.py refactor(ui): three-column layout with left rail + main-view migration (#899) 2026-04-24 09:05:25 -07: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 refactor(ui): three-column layout with left rail + main-view migration (#899) 2026-04-24 09:05:25 -07:00
test_sprint11.py fix(config): default model empty string — no unavailable OpenAI model for non-OpenAI users — closes #646 (PR #649) 2026-04-18 06:46:43 +00:00
test_sprint12.py fix(models): preserve @nous: prefix in settings + fix cross-namespace 404 for Nous (#895 #894) (#901) 2026-04-23 10:44:10 -07: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 feat(theme): replace color scheme system with light/dark + accent skins (PR #627 by @aronprins) 2026-04-18 06:37:09 +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(theme): replace color scheme system with light/dark + accent skins (PR #627 by @aronprins) 2026-04-18 06:37:09 +00:00
test_sprint20b.py feat(theme): replace color scheme system with light/dark + accent skins (PR #627 by @aronprins) 2026-04-18 06:37:09 +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 feat(theme): replace color scheme system with light/dark + accent skins (PR #627 by @aronprins) 2026-04-18 06:37:09 +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(security): gate auto-install behind HERMES_WEBUI_AUTO_INSTALL=1 — v0.50.156 2026-04-22 20:49:28 +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 refactor(ui): three-column layout with left rail + main-view migration (#899) 2026-04-24 09:05:25 -07: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: correct message ordering after task cancellation — v0.50.163 (#883) 2026-04-22 22:17:40 -07: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(streaming): strip Gemma 4 thinking token delimiter in all paths — closes #607 2026-04-18 06:45:39 +00: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: correct webui profile switching state — v0.50.150 (PR #849 by @migueltavares) 2026-04-22 16:27:01 +00:00
test_sprint41.py fix: harden session persistence and per-session lock handling during streaming (v0.50.175, #910) (#910) 2026-04-23 14:25:43 -07:00
test_sprint42.py fix(streaming): guard newer AIAgent kwargs with inspect for hermes-agent compat (#775) 2026-04-20 23:23:19 +00: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_sprint46.py fix(compress): prefer persisted reference handoff after completion — v0.50.90 (PR #699 by @franksong2702) 2026-04-19 04:29:07 +00:00
test_sprint47.py feat: slash command parity + skill autocomplete — v0.50.91 (PR #711) 2026-04-19 05:37:44 +00:00
test_sprint48.py fix(streaming): strip malformed DSML function_calls tags (#958) 2026-04-24 11:04:16 -07:00
test_sprint49.py fix(ui): hover-only footer chrome with timestamps for both user and assistant — v0.50.110 (fixes #680) (#758) 2026-04-20 00:53:19 -07:00
test_sprint50.py fix(ui): constrain slash autocomplete width to composer — v0.50.98 (closes #633) (#750) 2026-04-19 23:17:00 -07:00
test_sprint51.py fix(streaming): eagerly release session lock in cancel_stream() (#778) 2026-04-20 23:54:40 +00:00
test_streaming_markdown.py fix(streaming): prevent dropped characters in incremental smd path (#960) 2026-04-24 11:04:32 -07:00
test_streaming_race_fix.py fix: streaming race conditions (#631) + blank-page workspace binding (#804) 2026-04-21 18:47:40 -07:00
test_title_aux_routing.py fix(streaming): respect auxiliary.title_generation config for session titles 2026-04-24 01:07:02 +00:00
test_title_sanitization.py fix: remove hardcoded chinese title heuristics (#887) 2026-04-23 09:45:34 -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_ttl_cache.py perf: TTL cache for model list + incremental session index (#780) 2026-04-21 00:33:03 +00:00
test_ui_card_animation.py fix(ui): dark-mode user bubbles use subtle tint + thinking card collapsible — v0.50.111 (#759) 2026-04-20 01:12:45 -07:00
test_update_banner_fixes.py fix: poll /health after update instead of blind setTimeout — v0.50.158 (closes #874) 2026-04-23 00:51:12 +00: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_version_badge.py fix: dynamic version badge — read from git tag, never hardcoded (#790) 2026-04-20 20:36:53 -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
test_webui_platform_hint.py fix: identify WebUI sessions as webui platform (#948) 2026-04-24 11:03:42 -07:00
test_workspace_blank_page_fix.py fix: streaming race conditions (#631) + blank-page workspace binding (#804) 2026-04-21 18:47:40 -07:00