..
helpers
refactor(tests): add temp sqlite helper ( #2930 )
2026-06-07 23:44:16 +02:00
streaming
fix(chat): stop code-block button flicker during streaming ( #3023 )
2026-06-06 04:08:54 -06:00
_taxonomy.py
test(taxonomy): auto-mark tests by area and sub-area ( #3491 )
2026-06-09 01:13:28 +02:00
bombadil-spec.ts
Odysseus v1.0
2026-05-31 23:58:26 +09:00
conftest.py
fix: session context drifting — messages leaking between chats ( #135 ) ( #267 )
2026-06-09 14:12:52 +01:00
markdown_codefence_placeholder_regression.mjs
Render emoji shortcodes as icons in chat ( #345 ) ( #629 )
2026-06-05 02:28:42 +02:00
README.md
test: add fast lane and duration visibility ( #3659 )
2026-06-09 20:11:47 +02:00
run_focus.py
test: add fast lane and duration visibility ( #3659 )
2026-06-09 20:11:47 +02:00
test_action_intents.py
fix(calendar): route read requests to agent ( #2452 )
2026-06-05 09:24:04 +01:00
test_action_intents_shell_verbs.py
Anchor shell-verb intent patterns to imperative or can-you position ( #1664 )
2026-06-03 14:23:10 +09:00
test_active_document_clear.py
fix: closed document stays active & leaks into new chats ( #1160 ) ( #1238 )
2026-06-03 01:47:13 +09:00
test_admin_device_flow_static.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_admin_wipe_gallery.py
Admin: wipe gallery albums with images
2026-06-02 20:35:57 +09:00
test_agent_loop.py
fix(mcp): route literal MCP requests to external schemas
2026-06-04 13:00:17 +00:00
test_agent_rounds_exhausted.py
feat: round-limit handling — Continue affordance at the cap + configurable cap ( #1999 )
2026-06-04 22:36:05 +02:00
test_agent_tools_truncate_nonstring.py
fix: agent_tools._truncate crashes on non-string input ( #1624 )
2026-06-03 14:06:39 +09:00
test_ai_interaction_owner_scope.py
fix(ai): scope tool model resolution by owner
2026-06-04 00:37:28 +01:00
test_amd_gpu_check_args.py
Parse all AMD GPU check args ( #1586 )
2026-06-03 08:56:48 +09:00
test_anthropic_response_parse.py
fix: Anthropic responses with multiple text blocks lose all but the first ( #1255 )
2026-06-03 00:57:20 +09:00
test_api_chat_security.py
Reapply "Merge branch 'main' of github.com:pewdiepie-archdaemon/odysseus"
2026-06-03 22:47:00 +09:00
test_api_key_manager_corrupt_load.py
fix: APIKeyManager.load crashes app startup on a corrupt/wrong-shape api_keys.json ( #1565 )
2026-06-03 08:11:37 +09:00
test_api_key_manager_resilience.py
API keys: skip undecryptable entries on load
2026-06-02 20:28:26 +09:00
test_api_token_routes.py
fix(api-tokens): preserve scopes on a partial token update ( #3407 )
2026-06-08 19:37:31 +02:00
test_api_token_user_route_gate.py
fix(auth): gate api tokens from user routes ( #2992 )
2026-06-07 12:55:01 +02:00
test_app.py
Fix fresh checkout test failures
2026-06-01 02:22:17 +00:00
test_app_static_mime.py
fix: normalize JS static MIME types on Windows
2026-06-02 01:32:00 +02:00
test_archived_sessions_model_filter.py
fix(tests): make archived session filter test multipart-independent
2026-06-05 10:12:47 +01:00
test_ask_user_tool.py
Add ask_user tool: agent-posed multiple-choice questions ( #2111 )
2026-06-05 11:49:11 +02:00
test_atomic_io.py
Add atomic IO durability tests ( #1622 )
2026-06-03 14:14:16 +09:00
test_auth_config_lock_concurrency.py
refactor(tests): reuse import-state helper in auth manager tests
2026-06-05 11:24:55 +01:00
test_auth_event_loop.py
fix: avoid double bcrypt on login by using create_session_trusted ( #3236 )
2026-06-07 15:10:53 +02:00
test_auth_regressions.py
fix(endpoint): import ModelEndpoint from core database
2026-06-04 11:51:47 +01:00
test_auth_require_privilege_nondict.py
fix: require_privilege 500s on a non-dict privileges blob from auth.json ( #1693 )
2026-06-03 13:37:54 +09:00
test_auth_session_revocation.py
refactor(tests): reuse import-state helper in auth tests
2026-06-05 11:10:41 +01:00
test_aux_llm_owner_scope.py
fix(endpoint): scope secondary endpoint lookups by owner
2026-06-08 11:51:55 +01:00
test_backup_cli_security.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_backup_import_cross_user_dedup.py
fix: backup import drops a user's memory when its text matches another user's ( #1743 )
2026-06-03 13:29:14 +09:00
test_backup_import_skills.py
fix: restore backup import after skills migration ( #2980 )
2026-06-06 21:46:32 +01:00
test_backup_import_skills_dedup.py
fix: backup import dropping a user's skill on cross-tenant title/id collision ( #2057 )
2026-06-09 08:04:22 +02:00
test_bg_jobs_store.py
Ignore invalid background job store rows ( #1261 )
2026-06-03 14:07:14 +09:00
test_bg_monitor_stream.py
Ignore non-string background stream deltas ( #1549 )
2026-06-03 14:11:45 +09:00
test_blind_compare_redaction.py
refactor(tests): add import-state isolation helper
2026-06-05 07:30:14 +01:00
test_build_user_content_pdf_marker.py
fix(documents): restore PDF library metadata and preview ( #2483 )
2026-06-07 23:23:27 +02:00
test_builtin_actions_nonstring.py
fix: builtin_actions heuristics crash on a truthy non-string input ( #1639 )
2026-06-03 08:59:16 +09:00
test_builtin_actions_owner_scope.py
fix(actions): scope scheduled model resolution to owner ( #2773 )
2026-06-05 13:13:13 +02:00
test_builtin_memory_consolidation.py
Scope memory consolidation by owner group
2026-06-02 12:40:28 +09:00
test_caldav_google_principal_url.py
fix(caldav): disable redirects on the sync/write-back DAVClient (SSRF) ( #2663 )
2026-06-07 05:05:24 +01:00
test_caldav_prune_parse_failure.py
fix(caldav): skip the prune when any object fails to parse ( #3454 )
2026-06-08 18:59:14 +02:00
test_caldav_redirect_hardening.py
fix(caldav): disable redirects on the sync/write-back DAVClient (SSRF) ( #2663 )
2026-06-07 05:05:24 +01:00
test_caldav_sync_prune_local_events.py
fix(caldav): don't prune locally-created events on sync ( #2706 )
2026-06-05 02:48:03 +02:00
test_caldav_sync_uid_scope.py
fix(calendar): scope CalDAV event lookup by calendar
2026-06-04 04:01:21 +01:00
test_caldav_url_hardening.py
fix(caldav): disable redirects on the sync/write-back DAVClient (SSRF) ( #2663 )
2026-06-07 05:05:24 +01:00
test_caldav_url_nonstring.py
Harden DAV outbound URL validation ( #2819 )
2026-06-05 13:22:21 +02:00
test_caldav_writeback.py
feat(calendar): support multiple CalDAV accounts ( #2942 )
2026-06-05 20:32:50 +02:00
test_caldav_writeback_route.py
feat: CalDAV write-back — push local event create/update/delete to the remote ( #800 ) ( #1282 )
2026-06-03 01:44:02 +09:00
test_calendar_cli_name.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_calendar_event_contrast.py
Improve calendar event text contrast ( #1184 )
2026-06-02 23:14:52 +09:00
test_calendar_list_range_aliases.py
fix(calendar): accept list event range aliases
2026-06-06 03:47:18 -06:00
test_calendar_owner_scope.py
Sanitize calendar export filenames ( #2840 )
2026-06-05 10:18:09 +02:00
test_calendar_parse_dt_naive.py
Strip tz in _parse_dt dateutil fallback (naive-datetime contract) ( #2557 )
2026-06-05 08:18:26 +01:00
test_calendar_parse_dt_tonight.py
fix: _parse_dt does not understand 'tonight' so event start/end breaks ( #1488 )
2026-06-03 14:14:41 +09:00
test_calendar_recurrence.py
fix(calendar): cap RRULE expansion ( #2902 )
2026-06-05 16:05:14 +02:00
test_calendar_rrule.py
refactor(tests): add temp sqlite helper ( #2930 )
2026-06-07 23:44:16 +02:00
test_calendar_rrule_until_utc.py
fix(calendar): keep recurring events with a UTC UNTIL from collapsing to one ( #1383 )
2026-06-03 14:24:14 +09:00
test_calendar_update_event_tz.py
refactor(tests): add temp sqlite helper ( #2930 )
2026-06-07 23:44:16 +02:00
test_calendar_utils_dates_js.py
Ignore non-string calendar date inputs ( #1649 )
2026-06-03 14:16:58 +09:00
test_censor_pref_js.py
Ignore censor preference storage errors ( #1652 )
2026-06-03 14:16:55 +09:00
test_chat_attachment_picker.py
Chat attachments: allow picker to choose any file type
2026-06-02 20:55:30 +09:00
test_chat_cached_model_normalization.py
Chat: use cached endpoint model ids before probing
2026-06-02 21:00:58 +09:00
test_chat_helpers.py
fix(auth): per-user allowed-models checklist ignores cache, [None] doesn't block ( #3355 )
2026-06-08 22:52:39 +02:00
test_chat_image_routing.py
Fix Windows Cookbook background tasks, exit statuses, and empty SSH logs wrapper ( #1389 )
2026-06-05 14:41:07 +02:00
test_chat_metrics.py
fix(chat): show requested and actual reply models
2026-06-06 04:30:16 -06:00
test_chat_preprocess_tool_policy.py
fix(agent): enforce guide-only tool policy ( #3088 )
2026-06-06 18:48:24 -06:00
test_chat_route_tool_policy.py
fix(agent): enforce guide-only tool policy ( #3088 )
2026-06-06 18:48:24 -06:00
test_chat_stream_scope.py
Fix chat stream recovery and PDF library indexing ( #468 )
2026-06-01 22:33:35 +09:00
test_chat_tool_screenshot_xss.py
Harden chat streaming DOM sinks ( #2498 )
2026-06-04 20:49:37 +02:00
test_chat_upload_limit_config.py
fix(upload): configure chat attachment size limit ( #2439 )
2026-06-07 22:42:24 +02:00
test_chatgpt_subscription_routes.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_check_outbound_url_nonstring.py
fix: check_outbound_url crashes on a truthy non-string URL ( #1623 )
2026-06-03 08:59:49 +09:00
test_chroma_client.py
fix: ChromaDB unreachable blocks app startup for 30-60s ( #326 ) ( #476 )
2026-06-01 22:22:41 +09:00
test_claim_ownerless_json.py
Skip invalid ownerless JSON rows ( #1540 )
2026-06-03 14:06:57 +09:00
test_cleanup_owner_scope.py
tests: cover cleanup owner scope
2026-06-02 20:42:21 +09:00
test_cleanup_service_utcnow.py
Replace cleanup service datetime.utcnow calls ( #1494 )
2026-06-03 14:14:27 +09:00
test_code_nav_tools.py
feat: add code-navigation tools (grep, glob, ls) + read_file line ranges ( #1670 )
2026-06-04 18:37:32 +02:00
test_compact_truncate_tool_call_args.py
fix(compactor): shrink oversized tool_calls arguments so trim_for_context can fit a tool-only turn ( #2949 )
2026-06-05 20:23:38 +02:00
test_compaction_summary_failure.py
fix(test): tolerate owner kwarg in compaction summary resolve_endpoint mock ( #3304 )
2026-06-07 17:23:06 +02:00
test_companion_pairing.py
refactor(constants): single source of truth for data dir ( #3368 )
2026-06-08 09:58:52 +02:00
test_companion_readonly.py
Tests: companion model JSON resilience
2026-06-02 13:15:22 +09:00
test_compare_endpoint_owner_scope.py
fix(tests): isolate compare endpoint owner-scope test
2026-06-04 19:17:15 +01:00
test_compare_js.py
Fix duplicate compare modal on repeated clicks ( #491 )
2026-06-01 22:24:27 +09:00
test_compare_stop_disconnect_poll.py
fix(compare): stream Compare panes directly to stop upstream promptly
2026-06-08 01:13:45 +01:00
test_composer_arrow_up_recall_js.py
feat(chat): recall last user message on empty composer ArrowUp ( #1175 )
2026-06-08 13:06:05 +02:00
test_compute_next_run_monthly_clamp.py
fix: monthly tasks scheduled for day 29-31 skip every short month ( #1668 )
2026-06-03 14:23:01 +09:00
test_consolidate_memory_explicit_drops.py
fix(memory): only delete memories the model explicitly drops in tidy ( #3455 )
2026-06-08 18:54:45 +02:00
test_contacts_add_null_name.py
fix: POST /api/contacts/add crashes on JSON null name/email (None.strip()) ( #1544 )
2026-06-03 14:23:34 +09:00
test_contacts_carddav_security.py
Harden DAV outbound URL validation ( #2819 )
2026-06-05 13:22:21 +02:00
test_contacts_cli_rows.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_contacts_vcard_parse.py
fix(contacts): parse Apple/iCloud item-grouped vCard EMAIL/TEL properties ( #1438 )
2026-06-03 14:24:04 +09:00
test_context_budget.py
fix(agent): make context-budget hard_max configurable via agent_input_token_hard_max setting ( #1273 )
2026-06-03 01:36:57 +09:00
test_context_cache_per_endpoint.py
fix(model-context): key context-window cache by (endpoint, model) ( #2614 )
2026-06-05 02:50:56 +02:00
test_context_compactor.py
Scope auxiliary LLM endpoints by owner ( #2996 )
2026-06-07 14:47:44 +02:00
test_context_compactor_nonstring.py
fix: context_compactor token helpers crash on non-string message text ( #1634 )
2026-06-03 14:12:14 +09:00
test_cookbook_cli_state.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_cookbook_cpu_only_serve.py
Drop GPU-only flags from the CPU-only (-ngl 0) serve command ( #1433 )
2026-06-03 04:26:15 +09:00
test_cookbook_dependency_completion_regression.py
fix(tests): restore Python CI baseline regressions
2026-06-05 10:31:38 +01:00
test_cookbook_diagnosis.py
fix: diagnose vllm serve runtime issues ( #1198 )
2026-06-05 11:03:04 +01:00
test_cookbook_download_toast_duration.py
Keep Cookbook download-failure toasts visible long enough to read ( #1412 )
2026-06-03 03:48:25 +09:00
test_cookbook_endpoint_registration.py
Fix Cookbook container-local model endpoints ( #1223 )
2026-06-03 00:09:48 +09:00
test_cookbook_error_feedback.py
fix(cookbook): surface backend diagnosis when serve fails in background ( #1636 )
2026-06-05 09:52:07 +01:00
test_cookbook_gemma4_thinking_template.py
feat(cookbook): add Gemma4 thinking chat template ( #2955 )
2026-06-05 22:43:31 +02:00
test_cookbook_helpers.py
fix(cookbook): allow spaces and non-ASCII characters in model directory paths ( #3473 )
2026-06-09 07:58:38 +02:00
test_cookbook_package_detection.py
fix(cookbook): detect llama-cpp-python via its real distribution name ( #1020 ) ( #1167 )
2026-06-02 22:52:37 +09:00
test_cookbook_progress_signal_js.py
Don't falsely declare a dependency build stale ( #1568 ) ( #1768 )
2026-06-03 13:23:35 +09:00
test_cookbook_same_host_server_profiles_js.py
fix(cookbook): preserve same-host ssh profile selection ( #3373 )
2026-06-09 00:36:10 +02:00
test_copilot.py
feat(provider): add GitHub Copilot provider with device-flow auth ( #1480 )
2026-06-04 21:13:14 +02:00
test_copilot_routes.py
feat(provider): add GitHub Copilot provider with device-flow auth ( #1480 )
2026-06-04 21:13:14 +02:00
test_cors_preflight.py
Fix: CORS preflight 401'd by AuthMiddleware before CORSMiddleware ( #3262 )
2026-06-07 15:23:23 +02:00
test_database_utcnow.py
Replace core database utcnow defaults ( #1457 )
2026-06-04 02:50:19 +01:00
test_ddg_redirect_resolution.py
Match host, not substring, when resolving DuckDuckGo redirects ( #886 )
2026-06-02 12:25:56 +09:00
test_deep_research_date_context.py
Inject current date into deep research planning and query prompts ( #1347 )
2026-06-03 03:00:52 +09:00
test_deep_research_extraction_controls.py
fix(research): support timeout defaults in direct tests ( #2624 )
2026-06-04 20:23:17 +02:00
test_deep_research_parse_json_array_echo.py
fix: deep research runs the prompt's example queries when the model echoes them ( #1666 )
2026-06-03 14:23:07 +09:00
test_deep_research_search_error.py
Research: report empty search provider results clearly
2026-06-02 20:34:25 +09:00
test_deep_research_synthesis_resilience.py
Don't lose deep-research findings when synthesis times out ( #1551 ) ( #1562 )
2026-06-03 08:11:44 +09:00
test_delete_message_no_session.py
Let the output "x" delete work when no model/session exists ( #1431 )
2026-06-03 04:20:48 +09:00
test_delete_user_invalidates_token_cache.py
fix(auth): revoke API tokens when deleting users
2026-06-04 04:44:34 +01:00
test_delete_user_revokes_api_tokens.py
refactor(tests): reuse import-state helper in auth tests
2026-06-05 11:10:41 +01:00
test_deleted_session_sidebar_regression.py
Fix stale deleted sessions in sidebar ( #1203 )
2026-06-02 23:52:22 +09:00
test_derive_title_nonstring.py
fix: _derive_title crashes on non-string content instead of returning Untitled ( #1751 )
2026-06-03 13:25:41 +09:00
test_device_flow_routes.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_diagnostics_service_route.py
feat(diagnostics): add consolidated service health endpoint for degraded-state reporting ( #964 )
2026-06-09 16:00:24 +01:00
test_dialog_aria.py
Add dialog accessibility semantics
2026-06-02 12:41:25 +09:00
test_diffusion_server_security.py
test(diffusion-server): exercise security middleware wiring ( #3214 )
2026-06-07 23:42:11 +02:00
test_digest_windows.py
fix: calendar check-in digest drops events 7-8 days out ( #1249 )
2026-06-03 01:03:58 +09:00
test_direct_upload_limits.py
refactor(uploads): centralize upload byte-limits in upload_limits.py ( #3364 ) ( #3518 )
2026-06-09 01:24:30 +02:00
test_doc_library_open_orphaned.py
Let orphaned documents be reopened from the library ( #1602 ) ( #1761 )
2026-06-03 13:28:31 +09:00
test_docs_cli_content_length.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_docs_no_orphan_images.py
Remove stray PR screenshots accidentally committed under docs/ ( #1351 )
2026-06-03 03:31:09 +09:00
test_docs_query_nondict_rows.py
fix: docs RAG query crashes on a non-dict row from the index ( #1706 )
2026-06-03 13:35:01 +09:00
test_document_actions_nonstring.py
fix: document_actions title/content helpers crash on non-string input ( #1621 )
2026-06-03 08:59:55 +09:00
test_document_ai_preview_refresh_js.py
fix document preview refresh after AI edits ( #2259 )
2026-06-07 22:33:01 +02:00
test_document_close_clears_active_route.py
refactor(tests): centralize fake database import-state cleanup
2026-06-05 12:27:44 +01:00
test_document_deeplink.py
fix: open #document deep-links on refresh and surface load errors ( #631 )
2026-06-02 11:48:54 +09:00
test_document_diff_discard_on_update_js.py
fix(documents): discard pending AI diff before switching active doc ( #2484 )
2026-06-07 22:35:35 +02:00
test_document_editor_scroll.py
Fix document editor scrollbar and line-number sync
2026-06-03 13:40:19 +09:00
test_document_library_delete_counters.py
fix(documents): refresh library counters after removal ( #1924 )
2026-06-04 04:42:23 +01:00
test_document_library_language_facet.py
fix: document library language facet undercounts text documents ( #1758 )
2026-06-03 13:28:38 +09:00
test_document_library_pdf_metadata.py
fix(documents): restore PDF library metadata and preview ( #2483 )
2026-06-07 23:23:27 +02:00
test_document_pdf_marker.py
Documents: strip PDF marker without corrupting text
2026-06-02 20:35:27 +09:00
test_document_processor_attachment_budget.py
Cap inline attachment context across files ( #1498 )
2026-06-03 14:23:43 +09:00
test_document_session_owner_scope.py
Scope document session links by owner ( #3005 )
2026-06-07 12:47:20 +02:00
test_document_tidy_null_timestamp.py
fix: document tidy crashes on a duplicate with NULL timestamps ( #1772 )
2026-06-03 13:23:01 +09:00
test_document_tool_owner_scope.py
Scope document tools to caller owner
2026-06-02 06:00:02 +09:00
test_edit_file.py
refactor(tools): migrate execution logic to src/agent_tools/ package with handler registry ( #3435 )
2026-06-09 14:35:36 +01:00
test_editor_draft_payload.py
Ignore invalid editor draft payloads ( #1533 )
2026-06-03 14:07:03 +09:00
test_email_decode_header.py
fix(email): guard _decode_header against unknown MIME charset ( #1354 )
2026-06-03 14:24:20 +09:00
test_email_envelope_recipients.py
fix: SMTP envelope recipients split on commas inside display names ( #1464 )
2026-06-03 14:23:58 +09:00
test_email_fallback_reconnect.py
Reconnect after a failed SEARCH ALL so the email poller doesn't desync IMAP ( #1613 ) ( #1748 )
2026-06-03 13:28:53 +09:00
test_email_helpers_decode_header_spaces.py
fix(email): decode headers without injected spaces ( #2433 )
2026-06-07 16:56:20 +02:00
test_email_imap_timeout.py
Use shared IMAP timeout for account tests ( #1088 )
2026-06-02 23:11:04 +09:00
test_email_library_bulk_actions.py
Email: persist bulk read state to provider
2026-06-02 20:28:01 +09:00
test_email_linkify_security_js.py
Harden email HTML URL sanitization ( #2496 )
2026-06-04 20:47:47 +02:00
test_email_owner_scope.py
fix(email): scope AI caches by owner ( #2695 )
2026-06-05 02:21:50 +02:00
test_email_polly_imap_leak.py
fix(tests): allow multiple logout calls when IMAP fallback reconnects ( #1976 )
2026-06-04 02:56:05 +01:00
test_email_smtp_security.py
Email: add explicit SMTP security mode
2026-06-02 13:15:06 +09:00
test_email_split_border_css.py
fix(ui): contain email split divider ( #1194 )
2026-06-02 23:28:24 +09:00
test_email_thread_parser_nonstring.py
Ignore non-string email thread bodies ( #1654 )
2026-06-03 14:06:31 +09:00
test_embedding_cache_confinement.py
Constrain embedding model cache paths ( #2849 )
2026-06-05 10:46:48 +02:00
test_embedding_endpoint_config.py
Ignore non-object embedding endpoint config ( #1260 )
2026-06-03 14:12:41 +09:00
test_embedding_lane_ndarray_restore.py
fix(embeddings): survive numpy embeddings when restoring a reset lane ( #3410 )
2026-06-09 10:40:17 +02:00
test_embedding_lanes.py
fix: split Chroma embedding lanes ( #3046 )
2026-06-06 03:17:19 -06:00
test_embeddings.py
Add support for EMBEDDING_API_KEY ( #2691 )
2026-06-05 14:47:24 +02:00
test_emoji_shortcodes_js.py
Render emoji shortcodes as icons in chat ( #345 ) ( #629 )
2026-06-05 02:28:42 +02:00
test_emoji_svg_hardening.py
Harden emoji SVG proxy responses ( #2842 )
2026-06-05 10:31:58 +02:00
test_endpoint_owner_scope_followup.py
fix(endpoint): scope secondary endpoint lookups by owner
2026-06-08 11:51:55 +01:00
test_endpoint_probing.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_endpoint_resolver.py
refactor(tests): replace local function copies in test_endpoint_resolver with real imports ( #3359 )
2026-06-07 22:47:57 +02:00
test_esc_menu_stack_js.py
fix: make transient dropdown/popup menus close on Escape
2026-06-01 14:23:22 -04:00
test_estimate_tokens_tool_calls.py
fix(model-context): count tool_calls in estimate_tokens so compaction sees real size ( #2751 )
2026-06-05 15:56:54 +02:00
test_extract_quotes.py
fix: extract_quotes accepts mismatched opening/closing quotes ( #1113 )
2026-06-02 22:34:52 +09:00
test_extract_skill_json_nonstring.py
fix: _extract_skill_json crashes on a truthy non-string teacher response ( #1630 )
2026-06-03 08:59:36 +09:00
test_extract_statistics.py
fix: extract_statistics drops large numbers and trailing % signs ( #1153 )
2026-06-02 22:35:30 +09:00
test_extract_urls.py
fix(chat): keep balanced trailing ')' when extracting URLs ( #3406 )
2026-06-08 21:33:29 +02:00
test_fenced_example_not_executed_for_native_models.py
fix(agent): stop treating illustrative Markdown fences as tool calls for native function-calling models ( #3356 )
2026-06-08 22:25:28 +02:00
test_fenced_invoke_no_raw_xml.py
fix: route misfenced web lookups to web tools
2026-06-06 03:46:31 -06:00
test_font_routes.py
Keep compact font family names together ( #1263 )
2026-06-03 14:24:30 +09:00
test_fork_session_metadata.py
fix(sessions): copy message metadata when forking a session ( #3409 )
2026-06-08 20:49:15 +02:00
test_form_markdown_roundtrip.py
fix(forms): keep PDF-form export from dropping values when the label has '*' ( #1407 )
2026-06-03 14:24:07 +09:00
test_forwarded_message_divider.py
Email: recognize forwarded message dividers
2026-06-02 20:32:56 +09:00
test_function_call_non_object_args.py
test(tool_execution): stop two tests leaking src.tool_execution into the suite ( #2686 )
2026-06-09 16:35:10 +01:00
test_gallery_album_owner_scope.py
Harden gallery album assignment scope ( #3004 )
2026-06-07 12:49:03 +02:00
test_gallery_cli_album_count.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_gallery_cli_preview.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_gallery_endpoint_matching.py
Scope gallery image endpoints by owner ( #3001 )
2026-06-07 12:51:21 +02:00
test_gallery_endpoint_ssrf.py
fix: validate client-supplied image _endpoint to prevent SSRF (gallery proxies) ( #1718 )
2026-06-03 13:34:17 +09:00
test_gallery_exif_orientation.py
fix: gallery records raw instead of display dimensions for EXIF-rotated photos ( #1667 )
2026-06-03 14:23:04 +09:00
test_gallery_filename_confinement.py
Constrain gallery filenames to image root ( #2828 )
2026-06-05 10:29:11 +02:00
test_gallery_image_endpoint_owner_scope.py
Scope gallery image endpoints by owner ( #3001 )
2026-06-07 12:51:21 +02:00
test_gallery_image_privileges.py
fix(endpoint): scope secondary endpoint lookups by owner
2026-06-08 11:51:55 +01:00
test_gallery_owner_filter_single_user.py
fix: gallery tag filters and tag-cleanup are empty in single-user mode ( #1771 )
2026-06-03 13:23:08 +09:00
test_generated_image_confinement.py
Constrain generated-image paths to image root ( #2837 )
2026-06-05 10:33:47 +02:00
test_gmail_quote_attribution_js.py
Parse standard Gmail quote attribution dates
2026-06-03 13:45:56 +09:00
test_gpu_compose_standalone.py
Reapply "Merge branch 'main' of github.com:pewdiepie-archdaemon/odysseus"
2026-06-03 22:47:00 +09:00
test_group_chat_storage.py
Keep group chat session cache loading ( #1418 )
2026-06-03 04:05:40 +09:00
test_helpers_import_state.py
refactor(tests): centralize fake endpoint resolver cleanup
2026-06-05 13:23:46 +01:00
test_hex_to_rgb_js.py
fix: theme color parsing breaks on #rgb shorthand hex ( #1213 )
2026-06-03 00:30:03 +09:00
test_history_compact_tool_calls.py
Scope auxiliary LLM endpoints by owner ( #2996 )
2026-06-07 14:47:44 +02:00
test_history_db_fallback_hidden.py
fix: history DB fallback returned hidden (compaction) messages to the client ( #1726 )
2026-06-03 13:30:11 +09:00
test_history_order_by_timestamp_regression.py
Fix HTTP 500 in history routes: order ChatMessage by timestamp, not created_at ( #1673 )
2026-06-03 14:22:51 +09:00
test_history_topics_owner_scope.py
fix(history): scope topic analysis to authenticated owner only ( #744 )
2026-06-02 11:36:01 +09:00
test_hwfit_amd.py
Cookbook fit: steer consumer AMD to GGUF recommendations
2026-06-02 21:01:42 +09:00
test_hwfit_bandwidth_nonstring.py
fix: _lookup_bandwidth crashes on a truthy non-string gpu_name ( #1641 )
2026-06-03 14:11:10 +09:00
test_hwfit_macos.py
fix: require GGUF sources for llama downloads ( #368 )
2026-06-01 22:47:47 +09:00
test_hwfit_manual_backend.py
fix(hwfit): honor manual "metal" backend in the hardware simulator ( #1090 )
2026-06-02 23:12:34 +09:00
test_hwfit_native_quant_labels.py
fix: hwfit native quant labels miss the cost maps and over-estimate VRAM ( #1690 )
2026-06-03 14:22:42 +09:00
test_hwfit_params_b_malformed.py
fix: params_b crashes the whole ranking on a malformed parameter_count ( #1550 )
2026-06-03 14:23:30 +09:00
test_hwfit_quant_formats.py
Fix native Cookbook quant classification
2026-06-02 13:07:20 +09:00
test_hwfit_unified_nvidia.py
fix(platform): Improve WSL SSH remote compatibility ( #3316 )
2026-06-08 00:33:50 +02:00
test_hwfit_windows.py
fix(hwfit): filter non-GGUF models on Windows ( #2530 )
2026-06-04 20:02:13 +02:00
test_icloud_imap_full_fetch.py
Fetch full messages with BODY.PEEK[] so read_email works on iCloud IMAP ( #1961 ) ( #1963 )
2026-06-04 03:53:14 +01:00
test_ics_escape.py
Sanitize calendar export filenames ( #2840 )
2026-06-05 10:18:09 +02:00
test_ics_export_escaping.py
fix: ICS export — escape X-WR-CALNAME and honour is_utc on DTSTART/DTEND ( #1174 )
2026-06-02 23:02:28 +09:00
test_ics_import_dedup_tz.py
fix: re-importing an ICS file duplicates every tz-aware timed event ( #1683 )
2026-06-03 14:22:49 +09:00
test_image_models_nondict_system.py
fix: image model ranking crashes when system is not a dict ( #1900 )
2026-06-04 03:23:59 +01:00
test_image_models_nonstring_search.py
fix: image model ranking crashes on a non-string search filter ( #1898 )
2026-06-04 03:26:35 +01:00
test_imap_leak_fixes.py
fix(email): close IMAP socket when connect/login fails ( #3174 ) ( #3363 )
2026-06-08 21:21:41 +02:00
test_imap_mailbox_quoting.py
fix: quote IMAP mailbox arguments ( #2170 )
2026-06-05 16:00:20 +02:00
test_inside_base_dir_nonstring.py
fix: inside_base_dir raises TypeError on a non-string path instead of failing closed ( #1619 )
2026-06-03 09:00:04 +09:00
test_integrations_store_shape.py
Ignore invalid integration rows ( #1404 )
2026-06-03 14:07:11 +09:00
test_internal_api_base.py
fix: route all agent loopback calls through internal_api_base() helper ( #3322 )
2026-06-07 22:22:09 +01:00
test_is_youtube_url_nonstring.py
fix: is_youtube_url crashes on a non-string url ( #1752 )
2026-06-03 13:24:33 +09:00
test_is_youtube_url_nonstring_svc.py
fix: is_youtube_url (services) crashes on a non-string url ( #1753 )
2026-06-03 13:24:24 +09:00
test_keybind_altgr_js.py
Ignore AltGr keystrokes in Ctrl+Alt keyboard shortcuts ( #825 )
2026-06-02 11:12:54 +09:00
test_lang_icon_null_opts_js.py
fix: langIcon throws on an explicit null opts argument ( #1740 )
2026-06-03 13:29:21 +09:00
test_llama_server_models_url.py
fix(models): query v1 models for llama-server endpoints ( #3380 )
2026-06-09 01:09:02 +02:00
test_llm_core_anthropic_cache.py
Add Anthropic prompt caching to the agent loop ( #812 )
2026-06-02 11:14:31 +09:00
test_llm_core_anthropic_temp_clamp.py
Clamp Anthropic temperature to [0.0, 1.0] in _build_anthropic_payload ( #1737 )
2026-06-03 13:29:36 +09:00
test_llm_core_concurrency.py
Make LLM host health maps thread-safe
2026-06-02 05:54:23 +09:00
test_llm_core_fallback.py
Don't attempt the same (url, model) route twice in the fallback chains ( #1733 )
2026-06-03 13:33:50 +09:00
test_llm_core_ollama.py
Ollama: pass discovered num_ctx in chat requests
2026-06-02 20:27:24 +09:00
test_llm_core_ollama_thinking.py
fix(llm): suppress thinking mode for qwen3/gemma4 on Ollama /v1 endpoint ( #3228 )
2026-06-09 07:35:15 +02:00
test_llm_core_reasoning.py
fix(llm): route harmony thinking streams ( #2449 )
2026-06-05 15:22:08 +02:00
test_llm_core_reasoning_content_fallback.py
fix: surface reasoning_content when content is empty (thinking models) ( #1233 )
2026-06-03 01:41:24 +09:00
test_llm_core_sanitize_tool_calls.py
test: stabilize full test collection
2026-06-04 00:27:29 +01:00
test_llm_core_sse_no_space.py
fix: streaming drops providers that emit SSE data lines with no space ( #1701 )
2026-06-03 13:37:14 +09:00
test_llm_core_streaming.py
fix(llm): guard against null arguments in streaming tool-call accumulator ( #2923 )
2026-06-05 20:57:36 +02:00
test_llm_core_system_msg_missing_content.py
fix: degrade missing/None content key in system messages to empty string ( #2570 )
2026-06-05 00:10:11 +02:00
test_llm_core_temperature.py
fix(llm): remove max_output_tokens from ChatGPT Subscription payload ( #3656 )
2026-06-09 17:42:12 +02:00
test_llm_core_usage_finish_delta.py
fix: SSE stream parser crashes with NoneType on providers sending null choice/usage/tc entries ( #2389 )
2026-06-04 13:53:10 +01:00
test_lmstudio_discovery.py
Discover LM Studio via host/port scanning and native-API fingerprint ( #1126 )
2026-06-02 23:04:58 +09:00
test_lmstudio_vision.py
Use LM Studio-reported vision capability for image passthrough ( #1130 )
2026-06-02 23:01:04 +09:00
test_local_endpoint_api_key_js.py
Models: allow API keys for local endpoints
2026-06-02 20:36:54 +09:00
test_local_endpoint_js.py
fix: don't bill self-hosted models reached by a container/service hostname ( #596 )
2026-06-02 11:47:58 +09:00
test_logs_cli_resolve_nonstring.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_loop_breaker_runaway.py
fix(agent): don't abort legitimate tool batches as runaway loops ( #3183 )
2026-06-07 16:16:17 +02:00
test_mail_cli_read_empty_fetch.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_mail_cli_recipients.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_manage_notes_owner_gate.py
Tighten manage notes owner checks ( #3002 )
2026-06-07 12:50:10 +02:00
test_manage_settings_token_budget.py
fix: agent_input_token_budget wrongly treated as a secret and unsettable from chat ( #1294 )
2026-06-03 01:53:47 +09:00
test_markdown_dom_xss_helpers.py
Harden markdown raw HTML sanitization ( #2497 )
2026-06-04 20:46:10 +02:00
test_markdown_rendering_js.py
fix(markdown): avoid autolinking dotted imports ( #2295 )
2026-06-05 02:57:20 +02:00
test_markdown_table_row_js.py
Ignore non-string markdown table rows ( #1648 )
2026-06-03 14:17:02 +09:00
test_markitdown_format_nonstring.py
fix: is_markitdown_format crashes on a non-string path ( #1618 )
2026-06-03 09:00:10 +09:00
test_markitdown_runtime.py
Add optional markitdown extraction for Office/EPUB documents ( #766 )
2026-06-02 11:28:52 +09:00
test_match_model_key_js.py
fix: model cost/info matches first substring key (gpt-4o-mini billed as gpt-4o) ( #1439 )
2026-06-04 03:05:37 +01:00
test_mcp_cache_invalidation.py
fix(mcp): invalidate tool prompt cache on connect/disconnect/error ( #1235 )
2026-06-03 00:49:29 +09:00
test_mcp_cli_env_serialize.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_mcp_cli_json.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_mcp_common_truncate.py
refactor(tools): consolidate duplicated _truncate and get_mcp_manager into src/tool_utils ( #3478 )
2026-06-09 01:05:30 +02:00
test_mcp_email_decode_header_spaces.py
Decode email headers without injected spaces
2026-06-03 13:45:33 +09:00
test_mcp_manager.py
feat(mcp): add Streamable HTTP transport with OAuth 2.0 ( #1033 )
2026-06-05 02:40:52 +02:00
test_mcp_oauth.py
feat(mcp): add Streamable HTTP transport with OAuth 2.0 ( #1033 )
2026-06-05 02:40:52 +02:00
test_mcp_param_hint_hardening.py
fix(mcp): sanitize and cap rendered MCP tool param hints ( #2682 )
2026-06-05 03:00:22 +02:00
test_mcp_reconnect_args.py
fix: MCP reconnect via tool passes only server_id to connect_server ( #1385 )
2026-06-03 03:46:07 +09:00
test_mcp_tool_params_in_prompt.py
fix(mcp): expose MCP tool input parameters to the agent
2026-06-04 12:51:31 +00:00
test_memory_bullet_extraction.py
Fix memory bullet extraction in service copy
2026-06-03 13:41:46 +09:00
test_memory_cli_rows.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_memory_extract_chat_nondict.py
fix: chat memory extraction crashes on a non-dict message ( #1749 )
2026-06-03 13:25:48 +09:00
test_memory_extraction_parse.py
fix(memory): make auto-memory extraction reliable for reasoning models ( #3190 )
2026-06-08 19:57:44 +02:00
test_memory_extractor_rows.py
Skip invalid memory extractor rows ( #1535 )
2026-06-03 14:07:00 +09:00
test_memory_extractor_vector_cross_tenant.py
Stub llm_core via monkeypatch.setitem so the cross-tenant test does not leak its fake into later test modules
2026-06-05 00:04:15 +01:00
test_memory_extractor_vector_degraded.py
Update degraded-vector dedup test for owner-scoped vector match
2026-06-04 23:45:13 +01:00
test_memory_fallback_dislike.py
fix(memory): record dislikes as dislikes, not preferences ( #2435 )
2026-06-07 16:36:07 +02:00
test_memory_imports.py
refactor(memory): canonicalize memory imports ( #50 )
2026-06-04 05:31:15 +01:00
test_memory_provider.py
feat(memory): add provider interface ( #72 )
2026-06-04 16:26:11 +01:00
test_memory_recall_nondict_rows.py
fix: memory recall crashes on a non-dict row from the vector store ( #1705 )
2026-06-03 13:35:09 +09:00
test_memory_routes_session_owner.py
fix(memory): owner-scope memory route session access
2026-06-03 23:13:56 +01:00
test_memory_validate_entries_nondict.py
fix: memory entry validation crashes on a non-dict row from memory.json ( #1691 )
2026-06-03 13:38:02 +09:00
test_merge_last_assistant_rows.py
fix: merge-last-assistant deletes tool/system rows from the DB (history desync) ( #1929 )
2026-06-04 19:47:08 +02:00
test_migrate_faiss_to_chroma.py
Skip invalid FAISS migration JSON ( #1547 )
2026-06-03 14:11:49 +09:00
test_modal_dock_composer_clearance.py
fix(ui): keep minimized windows above composer ( #1197 )
2026-06-02 23:31:09 +09:00
test_model_context.py
fix(models): stabilize proxy endpoint refresh behavior
2026-06-04 04:56:11 +01:00
test_model_discovery_status.py
Reject invalid Tailscale discovery JSON ( #1556 )
2026-06-03 14:11:31 +09:00
test_model_helper_owner_scope.py
Scope model helper endpoint resolution ( #3007 )
2026-06-07 12:40:23 +02:00
test_model_name_tooltip.py
Add hover tooltips for clipped model names ( #1982 ) ( #1985 )
2026-06-07 19:23:44 +02:00
test_model_routes.py
feat(providers): add NVIDIA AI provider endpoint support ( #3456 )
2026-06-09 11:06:12 +02:00
test_model_sort_js.py
Ignore invalid model sort inputs ( #1653 )
2026-06-03 14:16:52 +09:00
test_new_chat_clears_input.py
Clear the composer draft when entering the New Chat / welcome state ( #1408 )
2026-06-03 04:07:31 +09:00
test_new_chat_model_preference.py
Chat: prefer active model for new desktop chats
2026-06-02 21:00:50 +09:00
test_nix_upload_text.py
fix: treat Nix files as readable uploads ( #2249 )
2026-06-04 12:06:24 +02:00
test_note_reminder_fire_scope.py
Harden note reminder dispatch ownership ( #2999 )
2026-06-07 12:52:27 +02:00
test_notes_cli_items.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_notes_dom_xss_helpers.py
Guard image and QR DOM attributes ( #2500 )
2026-06-04 20:51:23 +02:00
test_notes_select_esc_listener_js.py
fix(notes): track + remove the select-mode Esc keydown listener so it doesn't leak per open ( #2792 )
2026-06-05 16:25:05 +02:00
test_notes_update_due_date.py
Notes: parse natural-language due dates on update
2026-06-02 20:51:16 +09:00
test_null_owner_gates.py
fix(tests): align gallery owner filter null-user expectation
2026-06-04 18:39:45 +01:00
test_odysseus_dispatcher.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_og_image_extraction.py
fix: source thumbnails dropped for http-only og:image URLs ( #667 )
2026-06-02 11:41:33 +09:00
test_ollama_port_detection.py
Add Ollama port path detection regressions ( #883 )
2026-06-02 12:24:18 +09:00
test_ordinal_suffix_js.py
fix: monthly schedule label shows 21th/22th/31th (ordinal suffix for days >20) ( #1577 )
2026-06-03 08:57:47 +09:00
test_owned_document_query.py
fix: owner-less document query passes bare False to SQLAlchemy filter() ( #1281 )
2026-06-03 01:20:43 +09:00
test_parse_due_time_first.py
fix(notes): handle time-first due_date phrases in parse_due_for_user ( #3319 )
2026-06-07 19:15:38 +02:00
test_pdf_runtime.py
Show a clear message when PyMuPDF is missing
2026-06-01 18:27:17 +09:00
test_personal_cli_rows.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_personal_dir_symlink_escape.py
fix: personal-docs path confinement used abspath, allowing symlink escape ( #1728 )
2026-06-03 13:29:57 +09:00
test_personal_docs_exclusions.py
Docs: respect path boundary when clearing exclusions
2026-06-02 20:35:44 +09:00
test_personal_docs_keyword_nondict.py
Skip malformed personal keyword index rows
2026-06-03 13:42:05 +09:00
test_personal_docs_lists.py
Save only string personal doc paths ( #1566 )
2026-06-03 08:37:29 +09:00
test_personal_docs_office_index.py
Add optional markitdown extraction for Office/EPUB documents ( #766 )
2026-06-02 11:28:52 +09:00
test_personal_docs_pdf_index.py
Fix chat stream recovery and PDF library indexing ( #468 )
2026-06-01 22:33:35 +09:00
test_personal_docs_state_store.py
Ignore invalid personal docs state ( #1401 )
2026-06-03 04:02:16 +09:00
test_personal_upload_isolation.py
Scope personal RAG uploads by owner ( #446 )
2026-06-01 22:36:53 +09:00
test_personal_upload_privilege.py
fix(personal): require document privilege for rag upload ( #2990 )
2026-06-07 12:56:53 +02:00
test_plan_mode.py
feat: Add plan mode to the chat agent ( #638 )
2026-06-05 16:32:25 +02:00
test_platform_compat.py
fix(platform): Improve WSL SSH remote compatibility ( #3316 )
2026-06-08 00:33:50 +02:00
test_popup_opener_isolation_js.py
Isolate HTML popup openers ( #2501 )
2026-06-04 20:52:41 +02:00
test_pr_blocker_audit.py
tools: add read-only PR blocker audit helper
2026-06-04 12:51:48 +01:00
test_prefs_atomic_write.py
Persist user prefs atomically ( #1840 )
2026-06-04 03:55:22 +01:00
test_prefs_routes.py
Ignore non-object prefs JSON ( #1257 )
2026-06-03 14:12:45 +09:00
test_prefs_single_user_no_clobber.py
fix: disabling auth wipes all users' preferences on next pref save ( #1764 )
2026-06-03 13:23:50 +09:00
test_preset_atomic_save.py
fix(presets): persist presets atomically to avoid corruption on crash ( #2169 )
2026-06-08 19:16:37 +02:00
test_preset_cli_invalid_entries.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_preset_cli_set_corrupt_entry.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_preset_cli_store.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_preset_expand_owner_scope.py
fix(presets): scope expand-prompt model resolution to owner ( #3477 )
2026-06-08 21:12:02 +02:00
test_preset_fill_missing_defaults.py
Presets: fill missing built-in defaults on load
2026-06-02 20:32:08 +09:00
test_preset_local_storage_js.py
Keep presets loading with bad local state ( #1417 )
2026-06-03 04:09:28 +09:00
test_preset_store_shape.py
Fall back from invalid preset stores ( #1402 )
2026-06-03 14:12:31 +09:00
test_promote_image_fields.py
fix(images): render agent-generated images in chat ( #2809 )
2026-06-05 13:04:33 +02:00
test_prompt_security.py
fix(security): harden untrusted_context_message against delimiter spoofing ( #3086 )
2026-06-07 22:15:50 +01:00
test_provider_classification.py
feat(providers): add NVIDIA AI provider endpoint support ( #3456 )
2026-06-09 11:06:12 +02:00
test_provider_detection.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_provider_device_flow_js.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_provider_endpoints.py
feat(providers): add NVIDIA AI provider endpoint support ( #3456 )
2026-06-09 11:06:12 +02:00
test_providers_mixtral_logo_js.py
fix: Mixtral and Ministral models render with no provider logo ( #1640 )
2026-06-03 14:23:21 +09:00
test_public_blocked_tool_nonstring.py
fix: is_public_blocked_tool crashes on a truthy non-string tool name ( #1620 )
2026-06-03 14:11:14 +09:00
test_question_type_detection.py
fix: research query misclassifies 'whatsapp'/'however' as questions ( #1247 )
2026-06-03 01:10:06 +09:00
test_rag_keyword_fallback_owner.py
fix: RAG keyword fallback leaked owner-less documents across users ( #1722 )
2026-06-03 13:31:33 +09:00
test_rag_manager_owner_compat.py
fix(rag): forward owner through manager wrapper ( #2991 )
2026-06-07 12:56:57 +02:00
test_rag_remove_directory_scope.py
Fix RAG remove_directory wiping the entire shared collection ( #1660 ) ( #1734 )
2026-06-03 13:29:51 +09:00
test_rag_server_directory_nonstring.py
fix: rag_server add/remove_directory crashes on a non-string directory arg ( #1614 )
2026-06-03 08:36:45 +09:00
test_rag_vector_id_stability.py
fix(tests): use current python for rag id stability ( #1817 )
2026-06-04 03:49:59 +01:00
test_rate_limiter.py
Odysseus v1.0
2026-05-31 23:58:26 +09:00
test_readiness.py
feat: add /api/ready readiness probe (DB, data dir, local-first) ( #1200 )
2026-06-02 23:33:22 +09:00
test_readme_ascii_fenced.py
Wrap the README banner in a code fence so it renders as typed ( #1403 )
2026-06-03 03:42:01 +09:00
test_rename_user_case_insensitive.py
refactor(tests): reuse import-state helper in auth tests
2026-06-05 11:10:41 +01:00
test_rename_user_owner_sync.py
fix(auth): sync file-backed and in-memory owner caches on user rename ( #3397 )
2026-06-09 10:19:45 +02:00
test_rename_user_token_cache.py
fix: renaming a user leaves their API tokens resolving to the old owner ( #1932 )
2026-06-04 20:37:59 +02:00
test_replace_messages_multimodal.py
fix: session context drifting — messages leaking between chats ( #135 ) ( #267 )
2026-06-09 14:12:52 +01:00
test_reply_all_cc_nonstring_js.py
fix: reply-all Cc builder crashes on a non-string To or Cc field ( #1700 )
2026-06-03 13:37:22 +09:00
test_reply_recipients_js.py
fix: reply-all Cc's the user's own other addresses (multi-account) ( #672 )
2026-06-02 11:42:20 +09:00
test_research_chat_stream_owner.py
fix: pass owner to start_research in chat stream path ( #1265 )
2026-06-03 02:32:38 +09:00
test_research_cli_preview.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_research_cli_status_filter.py
Research CLI: alias --status complete to the stored done value ( #2515 )
2026-06-05 08:50:33 +01:00
test_research_cli_store.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_research_endpoint_owner_scope.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_research_handler_path_confinement.py
Constrain research handler JSON paths ( #2846 )
2026-06-05 13:20:02 +02:00
test_research_handler_raw_nondict.py
fix: a non-dict finding silently drops all raw research findings ( #1739 )
2026-06-03 13:29:29 +09:00
test_research_handler_sources_nondict.py
fix: research source extraction crashes on a non-dict finding ( #1714 )
2026-06-03 13:34:40 +09:00
test_research_owner_scope_routes.py
refactor(constants): single source of truth for data dir ( #3368 )
2026-06-08 09:58:52 +02:00
test_research_probe_errors.py
Surface deep research probe errors ( #1086 )
2026-06-02 22:51:25 +09:00
test_research_query_fallback.py
Deep research: don't treat a bare 'yes' as the research topic ( #858 )
2026-06-02 11:30:53 +09:00
test_research_report_read.py
Route "read that report" to manage_research instead of the HTML render ( #1375 )
2026-06-03 03:24:09 +09:00
test_research_service.py
Skip invalid research service sources ( #1583 )
2026-06-03 08:57:09 +09:00
test_research_session_id_validation.py
fix(research): validate session_id to block path traversal
2026-06-01 23:25:38 +01:00
test_research_source_link_xss.py
Whitelist research source links ( #2499 )
2026-06-04 20:41:35 +02:00
test_research_utils.py
fix: deep research discards valid sources mentioning cookies/copyright ( #481 )
2026-06-01 22:26:37 +09:00
test_research_utils_low_quality_nonstring.py
Treat non-string research summaries as low quality
2026-06-03 13:42:24 +09:00
test_reserved_username_admin_escalation.py
refactor(tests): reuse import-state helper in auth manager tests
2026-06-05 11:24:55 +01:00
test_resolve_endpoint_fallbacks.py
Add resolve_endpoint fallback chain regressions ( #890 )
2026-06-02 12:24:50 +09:00
test_resolve_session_auth_chatgpt.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_resolve_upload_path_nondict.py
fix: _resolve_user_upload_path crashes on a non-dict resolve_upload result ( #1715 )
2026-06-03 13:34:33 +09:00
test_review_regressions.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_rewrite_persist_column.py
fix(tests): add endpoint URLs to remaining session fixtures
2026-06-04 03:14:43 +01:00
test_run_focus.py
test: add fast lane and duration visibility ( #3659 )
2026-06-09 20:11:47 +02:00
test_sanitize_multimodal_merge.py
fix: merging consecutive user messages corrupts multimodal (image) content ( #1277 )
2026-06-03 01:21:57 +09:00
test_schedule_email_offset_normalization.py
Normalize scheduled email offsets before storage
2026-06-03 13:44:18 +09:00
test_scheduler_restart_doublefire.py
Replace task scheduler utcnow calls ( #1456 )
2026-06-03 14:14:30 +09:00
test_scheduler_scheduled_time_validation.py
fix(scheduler): fail closed on malformed scheduled_time instead of 500 ( #1410 )
2026-06-03 14:12:07 +09:00
test_search_analytics_defaults.py
refactor(search): make src analytics a service shim ( #2264 )
2026-06-04 18:57:24 +02:00
test_search_cache_invalidation.py
Fix invalidate_search_cache using a key that never matches stored entries ( #852 )
2026-06-02 10:53:33 +09:00
test_search_config_no_key_leak.py
Stop GET /api/search/config from leaking the Brave API key ( #1661 ) ( #1750 )
2026-06-03 13:24:17 +09:00
test_search_config_provider_key.py
Report provider-specific search API keys correctly ( #1202 )
2026-06-02 23:37:15 +09:00
test_search_content_block_source_index.py
fix: web search content blocks numbered by fetch completion order break citations ( #1672 )
2026-06-03 14:22:55 +09:00
test_search_content_extraction_parity.py
fix(search): catch HTTPStatusError so 403/404 URLs degrade gracefully instead of 500 ( #2203 )
2026-06-08 01:09:21 +01:00
test_search_content_url_guards.py
chore: deduplicate src/search modules (cache, content, query) into shims ( #2506 )
2026-06-04 18:10:55 +02:00
test_search_module_consolidation.py
chore: deduplicate src/search modules (cache, content, query) into shims ( #2506 )
2026-06-04 18:10:55 +02:00
test_search_provider_json.py
fix(search): degrade to empty results on non-JSON provider responses ( #1129 ) ( #1352 )
2026-06-03 14:24:23 +09:00
test_search_query.py
Fix year extraction in research queries
2026-06-01 23:09:41 +09:00
test_search_query_entities_nonstring.py
fix: _extract_entities crashes on a non-string query ( #1724 )
2026-06-03 13:30:28 +09:00
test_search_query_nonstring.py
fix: search query helpers crash on a non-string query ( #1604 )
2026-06-03 08:36:01 +09:00
test_search_ranking.py
Reapply "Merge branch 'main' of github.com:pewdiepie-archdaemon/odysseus"
2026-06-03 22:47:00 +09:00
test_search_ranking_recency.py
Reapply "Merge branch 'main' of github.com:pewdiepie-archdaemon/odysseus"
2026-06-03 22:47:00 +09:00
test_search_ranking_sports_substring.py
fix: sports-hint ranking penalty fires on 'transport'/'passport' substrings ( #1473 )
2026-06-03 14:23:52 +09:00
test_search_ranking_subject_substring.py
Word-boundary match for snippet and subject-term ranking ( #1473 follow-up) ( #2556 )
2026-06-05 08:04:31 +01:00
test_search_service_nondict_rows.py
fix(tests): update search service mock to match current API signature ( #2334 )
2026-06-04 14:19:51 +01:00
test_searchservice_search_call.py
fix: SearchService.search() calls comprehensive_web_search incorrectly (broken public API) ( #1720 )
2026-06-03 13:33:56 +09:00
test_searxng_image_pinned.py
Pin the SearXNG image so a broken :latest can't block startup ( #1419 )
2026-06-03 03:56:54 +09:00
test_security_headers_middleware.py
fix(security): add HSTS and Permissions-Policy to SecurityHeadersMiddleware ( #3081 )
2026-06-07 04:58:33 +01:00
test_security_headers_pdf_preview.py
fix(documents): restore PDF library metadata and preview ( #2483 )
2026-06-07 23:23:27 +02:00
test_security_regressions.py
docs(email): clarify Outlook password auth failures
2026-06-08 15:32:16 +01:00
test_select_dropdown_theme_css.py
Normalize native select option theming ( #1178 )
2026-06-02 23:09:15 +09:00
test_sender_signature_skip_roles.py
fix: signature learning never skips support@/info@/admin@ senders ( #1773 )
2026-06-03 13:22:52 +09:00
test_serve_profiles.py
Cookbook serve profiles and engine filter
2026-06-02 12:34:42 +09:00
test_service_health.py
feat(diagnostics): add consolidated service health endpoint for degraded-state reporting ( #964 )
2026-06-09 16:00:24 +01:00
test_service_search_provider_guards.py
Search: consolidate core and provider implementations
2026-06-02 21:02:26 +09:00
test_services_research_low_quality_sources.py
fix: services research lists junk no-content pages as cited sources ( #1669 )
2026-06-03 14:22:58 +09:00
test_services_search_analytics_defaults.py
Merge search analytics defaults in services copy
2026-06-03 13:45:07 +09:00
test_session_actions_cleanup.py
fix(sessions): keep fresh chats during auto tidy ( #1871 )
2026-06-09 01:06:20 +01:00
test_session_concurrent.py
fix: session context drifting — messages leaking between chats ( #135 ) ( #267 )
2026-06-09 14:12:52 +01:00
test_session_context_excludes_slash.py
fix: exclude slash-command/setup messages from LLM context ( #2634 ) ( #2640 )
2026-06-04 21:42:23 +02:00
test_session_endpoint_owner_scope.py
Harden session endpoint owner scope ( #1308 )
2026-06-03 02:40:22 +09:00
test_session_export_filename.py
fix: _sanitize_export_filename crashes on a non-string session name ( #1607 )
2026-06-03 08:35:47 +09:00
test_session_export_nonstring_content.py
Fix session export 500 on multimodal/None message content ( #1984 )
2026-06-04 12:53:44 +01:00
test_session_ghost_delete.py
allow user who disable auth to use chat ( #2548 )
2026-06-05 22:54:19 +02:00
test_session_list_owner_scope.py
fix(sessions): scope enrichment queries by owner, add LIMIT to auto_sort ( #3350 )
2026-06-07 21:32:21 +02:00
test_session_manager.py
fix: session context drifting — messages leaking between chats ( #135 ) ( #267 )
2026-06-09 14:12:52 +01:00
test_session_manager_cleanup.py
Fix session cleanup cutoff timezone ( #2488 )
2026-06-05 09:52:34 +02:00
test_session_manager_persist_guard.py
Guard session message persistence after delete ( #1451 )
2026-06-03 14:24:01 +09:00
test_session_mode_helpers.py
Fix database stubs in regression tests ( #301 )
2026-06-01 16:55:09 +09:00
test_session_owner_attribution.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_session_search.py
feat(search): unify session transcript search ( #2877 )
2026-06-05 18:08:31 -06:00
test_sessions_cli.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_settings_error_paths.py
fix(settings): catch PermissionError in load_settings + error-path tests ( #1570 )
2026-06-03 14:23:27 +09:00
test_settings_scrub.py
Harden note reminder dispatch ownership ( #2999 )
2026-06-07 12:52:27 +02:00
test_settings_store_shape.py
Fall back from invalid settings stores ( #1416 )
2026-06-03 03:53:05 +09:00
test_setup_admin_user.py
refactor(constants): single source of truth for data dir ( #3368 )
2026-06-08 09:58:52 +02:00
test_setup_device_auth_static.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_shell_routes.py
feat(platform): Add support for APFEL as part of the dependencies and models for the Cookbook. ( #2657 )
2026-06-07 17:28:02 +02:00
test_shell_service.py
fix: use running loop for shell stream deadlines ( #1694 )
2026-06-03 13:37:46 +09:00
test_signature_cli_export.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_signature_fold_js.py
Ignore non-string signature fold metadata ( #1655 )
2026-06-03 14:16:48 +09:00
test_signature_fold_self_closing_br_js.py
fix: signature delimiter fold misses self-closing <br/> breaks ( #1774 )
2026-06-03 13:22:46 +09:00
test_signature_route_hardening.py
Constrain signature uploads to PNG data ( #2844 )
2026-06-05 13:17:43 +02:00
test_signature_settings_dom_xss.py
Constrain signature uploads to PNG data ( #2844 )
2026-06-05 13:17:43 +02:00
test_skill_extractor_json.py
fix(skills): tolerate a stray brace before the JSON in skill extraction ( #2200 )
2026-06-07 16:54:36 +02:00
test_skill_extractor_rows.py
Skip invalid skill extractor rows ( #1546 )
2026-06-03 14:06:53 +09:00
test_skill_extractor_stray_brace.py
fix(skill-extractor): walk all brace candidates so stray braces in prose do not swallow valid JSON ( #2205 )
2026-06-07 23:31:12 +01:00
test_skill_importer.py
feat(skills): import SKILL.md bundles from public GitHub URLs ( #2576 )
2026-06-05 19:48:23 +02:00
test_skill_index_prompt_injection.py
fix(agent): scope skill index to owner ( #2404 )
2026-06-09 09:51:29 +02:00
test_skill_save_no_rename.py
fix(skills): markdown save must not rename the skill, so delete keeps working ( #1333 ) ( #1365 )
2026-06-03 03:16:11 +09:00
test_skills_cli_preview.py
refactor(tests): finish shared CLI loader adoption
2026-06-05 06:00:05 +01:00
test_skills_cli_rows.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_skills_delete_owner.py
Skills: delete owner-scoped skills with owner
2026-06-02 20:28:36 +09:00
test_skills_manager_owner_isolation.py
Scope skills usage by owner ( #1312 )
2026-06-03 02:27:43 +09:00
test_skills_routes_nondict.py
fix: skill test-task / precision helpers crash on a non-dict skill ( #1638 )
2026-06-03 08:59:24 +09:00
test_skills_routes_owner_update.py
Fix owner-scoped skill updates ( #1240 )
2026-06-03 00:42:56 +09:00
test_skills_tag_token_match.py
fix: skill retrieval boosts on tag substrings (e.g. 'ai' tag for any 'email' query) ( #1406 )
2026-06-03 14:24:11 +09:00
test_slash_autocomplete_static.py
feat: add ChatGPT Subscription provider ( #2876 )
2026-06-08 10:19:18 +02:00
test_snap_other_layers_nonarray_js.py
fix: computeSnap throws when ctx.otherLayers is not an array ( #1716 )
2026-06-03 13:34:25 +09:00
test_speech_service_toggles.py
Honor disabled speech service toggles ( #814 )
2026-06-02 10:44:39 +09:00
test_split_chunks_no_duplicate_tail.py
fix(tests): use non-repeating split chunk fixture
2026-06-04 18:11:42 +01:00
test_sqlite_foreign_keys.py
refactor(tests): centralize fake database import-state cleanup
2026-06-05 12:27:44 +01:00
test_src_search_query_nonstring.py
chore: deduplicate src/search modules (cache, content, query) into shims ( #2506 )
2026-06-04 18:10:55 +02:00
test_streaming_segmenter_js.py
fix(chat): stop code-block button flicker during streaming ( #3023 )
2026-06-06 04:08:54 -06:00
test_strip_reasoning_prose_dataloss.py
fix: _strip_reasoning_prose discards the answer when reasoning trails it ( #1643 )
2026-06-03 14:23:15 +09:00
test_strip_think.py
fix: normalize Gemma 4 thought-channel output ( #2224 )
2026-06-04 19:26:58 +02:00
test_stt_leak.py
STT: clean temp audio files on transcription failure
2026-06-02 20:43:24 +09:00
test_task_chain_owner_scope.py
Enforce task chain owner scope ( #3006 )
2026-06-07 12:43:43 +02:00
test_task_scheduler_cancel.py
Tasks: clean up queued cancellation state
2026-06-02 20:51:21 +09:00
test_task_scheduler_session_delivery.py
fix: session context drifting — messages leaking between chats ( #135 ) ( #267 )
2026-06-09 14:12:52 +01:00
test_task_session_folder.py
feat(tasks): assign folder='Tasks' at creation + backfill migration ( #2834 )
2026-06-07 15:33:17 +02:00
test_tasks_cli_preview.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_taxonomy.py
test(taxonomy): auto-mark tests by area and sub-area ( #3491 )
2026-06-09 01:13:28 +02:00
test_teacher_audit_owner_scope.py
fix(presets): scope expand-prompt model resolution to owner ( #3477 )
2026-06-08 21:12:02 +02:00
test_teacher_eval_nonstring_reply.py
fix: evaluate_turn_regex crashes on a non-string agent_reply ( #1723 )
2026-06-03 13:31:26 +09:00
test_theme_cli_store.py
refactor(tests): reuse CLI loader in more tests ( #2571 )
2026-06-05 02:42:10 +01:00
test_tls_overrides_scope.py
Support extra CA bundle for private-CA LLM providers ( #769 )
2026-06-04 13:18:50 +01:00
test_tool_index_keyword_boundaries.py
fix(tests): restore Python CI baseline regressions
2026-06-05 10:31:38 +01:00
test_tool_parsing_nonstring.py
fix: tool-block parsing crashes on a non-string input ( #1628 )
2026-06-03 08:59:42 +09:00
test_tool_path_confinement.py
fix(tools): strict path confinement with sensitive-subpath deny list ( #1072 )
2026-06-02 23:13:30 +09:00
test_tool_policy.py
refactor(tools): remove dead workspace-confinement plumbing ( #3590 )
2026-06-09 08:30:50 +02:00
test_tool_rag_keyword_hints.py
Don't force-include the email toolset on every "tell me" query ( #1707 ) ( #1735 )
2026-06-03 13:33:43 +09:00
test_tool_support_heuristic.py
Fix Ollama agent single-token responses ( #1591 )
2026-06-04 11:45:10 +01:00
test_tool_utils_import_clean.py
refactor(tools): consolidate duplicated _truncate and get_mcp_manager into src/tool_utils ( #3478 )
2026-06-09 01:05:30 +02:00
test_topic_analyzer.py
refactor(tests): centralize fake database import-state cleanup
2026-06-05 12:27:44 +01:00
test_totp_failclosed.py
fix: 2FA bypassed when enabled but TOTP secret is missing (fail-open) ( #1286 )
2026-06-03 01:26:47 +09:00
test_truncate_message_count_regression.py
fix: session context drifting — messages leaking between chats ( #135 ) ( #267 )
2026-06-09 14:12:52 +01:00
test_tts_cache_stats.py
TTS: include mp3 files in cache stats
2026-06-02 20:43:29 +09:00
test_tts_speed_malformed.py
fix(tts): tolerate a malformed tts_speed instead of 500-ing ( #1450 )
2026-06-03 14:12:03 +09:00
test_ui_control_rag_toggle.py
fix: ui_control rejects the advertised rag toggle ( #1763 )
2026-06-03 13:24:00 +09:00
test_unknown_tool_calls.py
test(tool_execution): stop two tests leaking src.tool_execution into the suite ( #2686 )
2026-06-09 16:35:10 +01:00
test_update_database_script.py
Remove duplicate update database body ( #1584 )
2026-06-03 08:57:03 +09:00
test_update_plan_tool.py
feat: Add plan mode to the chat agent ( #638 )
2026-06-05 16:32:25 +02:00
test_upload_error_surfaced.py
Surface upload failures instead of silently dropping the files ( #1425 )
2026-06-03 04:12:23 +09:00
test_upload_handler_atomicity.py
Ignore stale duplicate upload rows ( #1256 )
2026-06-03 00:59:01 +09:00
test_upload_id_extension.py
fix: uploads with _ or - in the extension become permanently unreadable ( #1756 )
2026-06-03 13:28:45 +09:00
test_upload_id_validation.py
fix: uploaded files with no extension become permanently unresolvable ( #1275 )
2026-06-03 01:16:30 +09:00
test_upload_limits_centralized.py
refactor(uploads): centralize upload byte-limits in upload_limits.py ( #3364 ) ( #3518 )
2026-06-09 01:24:30 +02:00
test_upload_multifile.py
Fix multi-file uploads tripping the per-IP concurrency guard ( #1346 ) ( #1362 )
2026-06-03 04:04:19 +09:00
test_upload_routes_owner_scope.py
Constrain upload paths to upload root ( #2825 )
2026-06-05 13:15:23 +02:00
test_url_safety.py
fix: SSRF hardening for the custom embedding endpoint URL ( #132 ) ( #1206 )
2026-06-02 23:46:33 +09:00
test_user_time.py
Fix calendar routing and user-local time context ( #408 )
2026-06-04 13:20:04 +01:00
test_vault_password_not_in_argv.py
Keep Bitwarden unlock password off argv ( #1311 )
2026-06-03 02:13:51 +09:00
test_venice_hosts.py
Treat Venice as a tool-capable SOTA cloud provider ( #1173 )
2026-06-02 23:03:46 +09:00
test_vision_model_detection.py
Recognize gemma3/llama4/mistral-small3.1+/multimodal as vision models ( #1430 )
2026-06-03 04:17:40 +09:00
test_vision_owner_scope.py
Scope vision model resolution by owner ( #3009 )
2026-06-07 12:39:02 +02:00
test_visual_report.py
Fix visual report chapter navigation ( #505 )
2026-06-01 22:26:13 +09:00
test_visual_report_icon_url.py
fix: visual report drops photos whose URL slug contains icon or logo ( #1685 )
2026-06-03 14:22:45 +09:00
test_visual_report_nonstring.py
fix: visual_report markdown helpers crash on a non-string input ( #1633 )
2026-06-03 14:06:35 +09:00
test_web_search_time_filter.py
fix(tool-schemas): preserve web_search time_filter through native tool-call conversion ( #2757 )
2026-06-05 08:00:59 +01:00
test_webhook_cli_mask.py
refactor(tests): add shared CLI test helpers
2026-06-04 15:44:25 +01:00
test_webhook_sanitize_error_ipv6.py
fix(webhooks): redact IPv6 addresses in sanitized error messages ( #3038 )
2026-06-07 04:55:33 +01:00
test_webhook_ssrf_resilience.py
fix(tests): make webhook SSRF test clean-worktree deterministic
2026-06-05 08:16:28 +01:00
test_webhook_trigger_auth_exempt.py
Exempt task webhook trigger from session auth ( #784 )
2026-06-02 11:23:40 +09:00
test_windows_update_script.py
Windows: add Docker update script
2026-06-02 20:45:32 +09:00
test_youtube_comments_timeout.py
YouTube: enforce comment fetch timeout while waiting
2026-06-02 20:44:24 +09:00
test_youtube_extract_id_nonstring.py
fix: extract_youtube_id crashes on a non-string url instead of returning None ( #1689 )
2026-06-03 13:38:11 +09:00
test_youtube_svc_comments_nondict.py
fix: youtube (services) comment formatter crashes on a non-dict comment ( #1746 )
2026-06-03 13:29:01 +09:00
test_youtube_transcript_seg_nondict.py
fix: youtube transcript formatter crashes on a non-dict segment ( #1745 )
2026-06-03 13:29:08 +09:00
TESTING_STANDARD.md
test: add fast lane and duration visibility ( #3659 )
2026-06-09 20:11:47 +02:00