forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfast_unit_duration_allowlist.txt
More file actions
340 lines (340 loc) · 35.2 KB
/
Copy pathfast_unit_duration_allowlist.txt
File metadata and controls
340 lines (340 loc) · 35.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
# Backend unit-test node IDs grandfathered against BACKEND_FAST_UNIT_FAIL_SECONDS (default 0.12s locally).
#
# The duration guard measures per-test CPU time (call phase). CPU time is load-independent, so the
# guard is deterministic regardless of parallelism. The entries below are genuine unit tests whose
# measured CPU exceeds the failure threshold. The dominant cause is the file-isolation
# runner model: each test file runs in its own pytest process, so the first test of a file/class
# amortizes that process's module import (FastAPI app / router / database graph) into its call.
# This is structural, not a per-test regression. They STAY in the PR unit lane; this file only
# suppresses the duration guard for these baseline node IDs. NEW slow tests are still flagged.
#
# To shrink this list: (a) migrate the runner to a single pytest session (BACKEND_PYTEST_FILE_ISOLATION=0)
# so imports are paid once per worker instead of per file, or (b) raise BACKEND_FAST_UNIT_FAIL_SECONDS.
# Genuinely non-unit tests (real asyncio sleeps, network, stress, codebase greps, full-app wiring,
# per-test fresh module reload) are marked `slow`/`integration` and are NOT listed here.
# One full _proxy round trip (metering -> sanitize -> dispatch -> terminal telemetry) with an
# in-process capturing client; hermetic, but the end-to-end path costs ~0.15-0.19s CPU.
tests/unit/test_desktop_proxy.py::test_proxy_dispatches_server_paid_bodies_with_the_2048_cap
# Renders all eight first-party charts in dev and prod; still hermetic and required in the unit lane.
tests/unit/test_llm_gateway_deploy_contract.py::test_gateway_deploy_workflows_bind_identity_and_gate_serving_static_contract
tests/unit/test_rendered_deployment_contract.py::test_repository_charts_render_the_full_contract_when_helm_is_available
# Builds 10,001 in-memory records to prove universal export has no historical-data cap.
tests/unit/test_universal_memory_service.py::test_export_has_no_silent_record_cap
# Intentionally crosses the legacy 6,000-row boundary to prove cursor paging has no hidden cap.
tests/unit/test_universal_memory_list_cursor.py::test_cursor_pages_beyond_6000_historical_with_bounded_calls_no_cap
# Boots the developer memory HTTP surface to verify pending canonical rows remain observable.
tests/unit/test_memory_visibility_export_fixes.py::test_developer_list_requests_pending_processing
# Exhaustive compatibility and deployment regressions intentionally traverse large synthetic
# Firestore datasets or repository manifests while remaining hermetic unit tests.
tests/services/users/test_data_export.py::test_iter_user_data_export_paginates_complete_collections
# Exercises the complete FastAPI export route so memory preflight failure is proven to occur
# before streaming response headers; the full TestClient boundary costs ~0.17s CPU in isolation.
tests/routers/test_users.py::test_export_all_user_data_returns_500_before_streaming_headers_when_memory_preflight_fails
tests/unit/test_bounded_firestore_list_reads.py::test_knowledge_graph_route_exposes_truncation
tests/unit/test_memory_replace_policy.py::test_universal_reextract_failure_preserves_existing_memories
tests/unit/test_backend_runtime_env_validator.py::test_runtime_manifest_rejects_retired_per_user_memory_inventory
tests/unit/test_backend_runtime_env_validator.py::test_repo_parakeet_admission_deploy_contract_is_explicit
# Repository-manifest render/validation paths parse the full checked-in runtime contract while
# remaining hermetic; their CPU cost fluctuates narrowly around the unit guard threshold.
tests/unit/test_backend_runtime_env_validator.py::test_repo_rendered_cloud_run_artifact_matches_manifest
tests/unit/test_backend_runtime_env_validator.py::test_parakeet_selected_without_endpoint_is_rejected_for_rendered_cloud_run_state
tests/unit/test_backend_runtime_env_validator.py::test_repo_ilb_endpoints_use_http_scheme[prod]
tests/unit/test_backend_runtime_env_validator.py::test_parakeet_admission_deploy_contract_rejects_missing_or_invalid_values[PARAKEET_STREAM_CAPACITY-0-PARAKEET_STREAM_CAPACITY must be an integer >= 1]
# Same group: each renders the desktop-backend compose contract end to end. Measured 0.10-0.13s
# CPU on an idle host, i.e. already above the 0.1s target before any contention.
tests/unit/test_backend_runtime_env_validator.py::test_desktop_backend_compose_requires_vertex_pt_env[dev]
tests/unit/test_backend_runtime_env_validator.py::test_desktop_backend_compose_requires_vertex_pt_env[prod]
tests/unit/test_backend_runtime_env_validator.py::test_desktop_backend_vertex_pt_omission_fails_loud
tests/unit/test_render_backend_runtime_env.py::test_selected_job_renders_only_shared_network_and_named_job_outputs
tests/unit/test_render_backend_runtime_env.py::test_render_prod_gateway_callers_inject_verified_endpoint
tests/unit/test_render_backend_runtime_env.py::test_render_prod_emits_memory_maintenance_job_cron_on
tests/unit/test_render_backend_runtime_env.py::test_render_prod_requires_vpc_env_vars_before_job_outputs
tests/unit/test_render_backend_runtime_env.py::test_selected_job_rejects_unknown_name_without_emitting_partial_output
# MEMORY_ENABLED product-flag tests parse the composed runtime manifest.
tests/unit/test_memory_enabled_product_flag.py::test_dev_overlay_pins_memory_enabled_on_and_prod_stays_off
tests/unit/test_memory_enabled_product_flag.py::test_memory_enabled_on_does_not_require_maintenance
tests/unit/test_backend_runtime_env_validator.py::test_repo_ilb_endpoints_use_http_scheme[dev]
tests/unit/test_backend_runtime_env_validator.py::test_scheduler_runtime_surfaces_declare_orphan_stale_setting[prod]
tests/unit/test_backend_runtime_env_validator.py::test_scheduler_runtime_surfaces_declare_orphan_stale_setting[dev]
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_auto_dev_workflow_is_listed_and_targets_job
tests/unit/test_backend_runtime_env_validator.py::test_parakeet_admission_deploy_contract_rejects_missing_or_invalid_values[PARAKEET_STREAM_CAPACITY-None-missing PARAKEET_STREAM_CAPACITY]
tests/unit/test_backend_runtime_env_validator.py::test_parakeet_admission_deploy_contract_rejects_missing_or_invalid_values[PARAKEET_STREAM_ALLOCATION_PERCENT-101-PARAKEET_STREAM_ALLOCATION_PERCENT must be an integer from 0 through 100]
tests/unit/test_backend_runtime_env_validator.py::test_prod_account_deletion_dispatch_contract_rejects_missing_or_inline_profile
tests/unit/test_backend_runtime_env_validator.py::test_prod_listen_finalization_contract_requires_the_dedicated_worker_bindings
tests/unit/test_backend_runtime_env_validator.py::test_listen_finalization_contract_requires_maps_key_on_backend_sync
tests/unit/test_backend_runtime_env_validator.py::test_prod_cloud_run_secret_bindings_exclude_stale_optional_secrets
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_allows_write_without_job_cron
tests/unit/test_backend_runtime_env_validator.py::test_repo_prod_rendered_cloud_run_state_matches_manifest
tests/unit/test_backend_runtime_env_validator.py::test_dev_cloud_run_pusher_contract_rejects_legacy_and_non_listener_bindings
tests/unit/test_backend_runtime_env_validator.py::test_dev_cloud_run_pusher_contract_rejects_job_binding
tests/unit/test_backend_runtime_env_validator.py::test_manual_firestore_readiness_contract_allows_one_staged_workflow_control_checkout
tests/unit/test_backend_runtime_env_validator.py::test_automatic_firestore_readiness_contract_requires_current_main_then_admitted_sha
tests/unit/test_backend_runtime_env_validator.py::test_automatic_firestore_readiness_contract_requires_readiness_admitted_sha_for_deploy
tests/unit/test_backend_runtime_env_validator.py::test_firestore_readiness_contract_requires_isolated_job_dependency[gcp_backend.yml]
tests/unit/test_backend_runtime_env_validator.py::test_firestore_readiness_contract_requires_isolated_job_dependency[gcp_backend_auto_dev.yml]
tests/unit/test_backend_runtime_env_validator.py::test_firestore_readiness_contract_requires_validation_before_artifact_upload[gcp_backend.yml]
tests/unit/test_backend_runtime_env_validator.py::test_firestore_readiness_contract_requires_validation_before_artifact_upload[gcp_backend_auto_dev.yml]
tests/unit/test_backend_runtime_env_validator.py::test_firestore_readiness_contract_rejects_backend_deployment_credentials[gcp_backend.yml]
tests/unit/test_backend_runtime_env_validator.py::test_firestore_readiness_contract_rejects_backend_deployment_credentials[gcp_backend_auto_dev.yml]
tests/unit/test_backend_runtime_env_validator.py::test_workflow_validation_uses_immutable_workflow_root_with_admitted_runtime_manifest
tests/unit/test_runtime_image_contracts.py::test_registered_runtime_image_sources_are_closed
tests/unit/test_runtime_image_contracts.py::test_pusher_contract_rejects_omitted_shared_package
tests/unit/test_runtime_image_contracts.py::test_pusher_dependency_probe_includes_jsonschema
tests/unit/test_runtime_image_contracts.py::test_modal_contract_rejects_omitted_shared_package
# Walk every registered import smoke's first-party closure through the AST; hermetic but CPU-bound.
tests/unit/test_runtime_image_contracts.py::test_registered_import_smokes_declare_their_import_time_environment
tests/unit/test_runtime_image_contracts.py::test_import_smoke_reaching_encryption_without_its_secret_is_rejected
tests/unit/test_app_client_schema_inventory.py::test_inventory_ignores_static_base_url_field_routes
tests/unit/test_app_client_schema_inventory.py::test_inventory_normalizes_interpolated_dart_route_segments
tests/unit/test_app_client_schema_inventory.py::test_inventory_openapi_route_response_decode_migration_complete
tests/unit/test_app_client_schema_inventory.py::test_inventory_scopes_record_return_type_route_functions
tests/unit/test_app_client_schema_inventory.py::test_inventory_separates_generated_backed_adapters_from_raw_manual_dtos
tests/unit/test_async_http_infrastructure.py::TestWebhookClientConfig::test_webhook_client_read_timeout_is_30s
tests/unit/test_audio_merge_tasks.py::TestEnqueueAudioMergeJob::test_task_named_by_conversation_and_file
tests/unit/test_backend_runtime_env_validator.py::test_cloud_run_state_rejects_old_secret_versions
tests/unit/test_backend_runtime_env_validator.py::test_cloud_run_state_reports_missing_gateway_url
tests/unit/test_backend_runtime_env_validator.py::test_cloud_run_workflow_validation_uses_custom_manifest_for_runtime_env_outputs
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_passes_for_repo_manifest
# Each parameter renders and validates the complete runtime manifest after injecting the three
# forbidden daily-sweep bindings; this is the same hermetic manifest path as the entries above.
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_daily_sweep_and_posthog_bindings[dev]
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_daily_sweep_and_posthog_bindings[prod]
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_empty_surface_allowlist
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_mismatched_surface_allowlist
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_missing_job
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_notifications_job_maintenance_config
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_read_mode_without_job_cron
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_request_path_cron
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_wrong_dev_capacity_value
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_requires_gateway_luna_bindings_when_enabled
tests/unit/test_backend_runtime_env_validator.py::test_memory_maintenance_job_contract_rejects_pinned_gateway_endpoint_when_enabled
tests/unit/test_backend_runtime_env_validator.py::test_parakeet_selected_without_endpoint_is_rejected_for_all_cloud_run_validation_modes
tests/unit/test_backend_runtime_env_validator.py::test_repo_prod_manifest_rejects_noncanonical_model_order_for_every_surface
tests/unit/test_backend_runtime_env_validator.py::test_repo_cloud_run_workflows_match_manifest
tests/unit/test_backend_runtime_env_validator.py::test_repo_gke_values_match_manifest
tests/unit/test_backend_runtime_env_validator.py::test_repo_prod_cloud_run_workflows_match_manifest
tests/unit/test_backend_runtime_env_validator.py::test_repo_prod_gke_values_match_manifest
tests/unit/test_backend_runtime_env_validator.py::test_repo_rendered_cloud_run_matches_manifest
tests/unit/test_verify_llm_gateway_serving.py::test_gateway_promotion_intent_tracks_runtime_and_helm_listener_surfaces
tests/unit/test_byok_security_enrollment.py::TestBYOKActivationValidation::test_valid_activation_persists_fingerprints
tests/unit/test_verify_pusher_config_references.py::test_dev_pusher_contract_requires_typesense_host_secret_clear
tests/unit/test_verify_pusher_config_references.py::test_rendered_dev_pusher_direct_bindings_match_source_contract
tests/unit/test_byok_security_credentials.py::TestCacheKeyHashing::test_hash_key_returns_sha256
tests/unit/test_byok_security_quota.py::TestChatQuotaBYOKBypass::test_enforce_chat_quota_bypasses_for_byok_with_openai_key
tests/unit/test_byok_security_context.py::TestContextVarSafety::test_default_is_none
tests/unit/test_byok_llm_logging.py::test_classify_byok_llm_error_authentication
tests/unit/test_canonical_short_term_maintenance_cron.py::test_cohort_runner_noops_when_cron_disabled
tests/unit/test_canonical_short_term_maintenance_cron.py::test_cohort_runner_uses_real_maintenance_with_fake_firestore
tests/unit/test_canonical_short_term_maintenance_cron.py::test_daily_cadence_after_first_promotion_run
tests/unit/test_canonical_short_term_maintenance_cron.py::test_first_cron_tick_does_not_mass_promote_below_batch_threshold
tests/unit/test_canonical_short_term_maintenance_cron.py::test_first_cron_tick_promotes_at_batch_threshold
tests/unit/test_chat_generate_reply_stateless.py::test_generate_reply_does_not_write_any_turn_to_chat_history
tests/unit/test_chat_quota_counting_router.py::test_v2_messages_quota_exceeded_reply_does_not_record_quota_question
tests/unit/test_chat_quota_counting_router.py::test_v2_messages_records_failure_when_the_production_stream_errors
tests/unit/test_chat_quota_counting_router.py::test_v2_messages_records_quota_question_after_human_message_persisted
tests/unit/test_chat_quota_counting_router.py::test_v2_voice_messages_records_quota_question_from_visible_message_chunk
tests/unit/test_chat_quota_counting_router.py::test_v2_voice_messages_without_visible_message_does_not_record_quota_question
tests/unit/test_chat_stream_error_fallback.py::test_build_stream_error_reply_persists_ai_message
tests/unit/test_chat_stream_error_fallback.py::test_emit_stream_error_fallback_reports_exhausted_when_persist_fails
tests/unit/test_chat_stream_error_fallback.py::test_v2_messages_does_not_double_emit_canned_after_typed_stream_error
tests/unit/test_chat_stream_error_fallback.py::test_v2_messages_emits_canned_done_after_error_without_staged_answer
tests/unit/test_chat_stream_error_fallback.py::test_v2_messages_emits_fallback_done_frame_on_pipeline_error
tests/unit/test_chat_stream_error_fallback.py::test_v2_messages_keeps_persisted_id_when_app_usage_recording_fails
tests/unit/test_chat_stream_error_fallback.py::test_v2_messages_normal_answer_still_emits_single_done_frame
tests/unit/test_chat_stream_error_fallback.py::test_voice_stream_emits_fallback_done_frame_on_pipeline_error
tests/unit/test_chat_stream_error_fallback.py::test_voice_stream_emits_fallback_when_pipeline_yields_no_answer
tests/unit/test_client_device_provenance.py::test_record_client_device_upserts_and_throttles
tests/unit/test_conversation_search_date_validation.py::test_bad_start_date_returns_400_not_500
tests/unit/test_conversation_model_split.py::TestPhase4RuntimeBehavior::test_trends_extractor_signature_callable
tests/unit/test_daily_notification_timezone_selection.py::test_sub_hour_offset_timezones_are_included_at_target_hour
tests/unit/test_desktop_message_quota_router.py::test_desktop_ai_message_does_not_record_quota
# File-isolation import of routers.chat + multipart/STT stubs amortizes into
# whichever test in this file runs first; CPU sits on the 0.30s fail line.
tests/unit/test_desktop_transcribe.py
tests/unit/test_desktop_transcribe.py::TestDurationBudgetEnforcement::test_multipart_budget_exhausted_429
tests/unit/test_desktop_transcribe.py::TestDurationBudgetEnforcement::test_octet_stream_budget_exhausted_429
tests/unit/test_desktop_transcribe.py::TestMultipartBudgetAggregation::test_multipart_multi_file_budget_sums_durations
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_accepts_boundary_sample_rate_48000
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_accepts_boundary_sample_rate_8000
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_connects_and_receives_segments
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_dg_connection_failure_closes_1011
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_finalize_flushes_and_finalizes
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_rejects_channels_above_2
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_rejects_invalid_channels
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_rejects_sample_rate_above_48000
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_rejects_unsupported_codec
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_rejects_zero_sample_rate
tests/unit/test_desktop_transcribe.py::TestTranscribeStreamWebSocket::test_ws_stereo_flush_accounts_for_channels
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeBoundary::test_octet_stream_accepts_boundary_sample_rate_48000
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeBoundary::test_octet_stream_accepts_boundary_sample_rate_8000
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeBoundary::test_octet_stream_channels_above_2_rejected
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeBoundary::test_octet_stream_sample_rate_above_48000_rejected
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_octet_stream_bad_channels_422
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_octet_stream_bad_sample_rate_422
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_octet_stream_channels_zero_422
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_octet_stream_empty_body_400
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_octet_stream_sample_rate_zero_400
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_multipart_browser_container_preserves_extension_for_prerecorded_stt[mp4-audio/mp4]
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_openapi_declares_typed_transcription_failures
tests/unit/test_desktop_transcribe.py::TestVoiceMessageTranscribeEndpoint::test_octet_stream_returns_transcript
tests/unit/test_desktop_transcribe.py::TestVoiceMessagesBudgetHappyPath::test_voice_messages_budget_consumed_on_success
tests/unit/test_dev_api_folder_filters.py::TestDevGetFolders::test_dev_get_folders_returns_folder_list
tests/unit/test_dev_api_lock_bypass.py::TestDevApiMemoryLockEnforcement::test_delete_memory_allows_unlocked
tests/unit/test_developer_memory_adapter.py::test_developer_create_route_checks_split_brain_guard_before_legacy_write
tests/unit/test_developer_memory_adapter.py::test_developer_delete_route_checks_split_brain_guard_before_reads_and_legacy_delete
tests/unit/test_dg_usage_batch.py::TestDgUsageBatchingBehavior::test_batched_60s_single_redis_write
tests/unit/test_dg_usage_batch.py::TestDgUsageBatchingBehavior::test_large_accumulation_no_overflow
tests/unit/test_dg_usage_batch.py::TestRedisOpsReduction::test_reduction_factor
tests/unit/test_diarizer_embedding_decoder_bypass.py::test_embedding_endpoint_passes_preloaded_audio_to_inference
tests/unit/test_experience_summary_date_grounding.py::test_summarize_experience_falls_back_to_utc_on_invalid_timezone
tests/unit/test_fair_use_classifier.py::TestPrepareConversationSummaries::test_extracts_metadata_correctly
tests/unit/test_google_calendar_auth_recovery.py::test_refresh_google_token_marks_missing_refresh_token_reauth_required
tests/unit/test_high_priority_usage_tracking.py::TestExternalIntegrationsTracking::test_get_conversation_summary_sets_context
tests/unit/test_high_priority_usage_tracking.py::TestKnowledgeGraphTracking::test_extract_knowledge_sets_context
tests/unit/test_llm_gateway_client_config.py::test_perplexity_tool_uses_legacy_provider_when_gateway_feature_mode_off
tests/unit/test_llm_gateway_client_config.py::test_gateway_langchain_client_uses_internal_gateway_base_url_and_auth
tests/unit/test_llm_gateway_dependencies.py::test_provider_registry_is_cached_and_closed
tests/unit/test_llm_gateway_executor.py::test_byok_missing_key_and_unsupported_provider_fail_without_fallback_or_lkg
tests/unit/test_llm_gateway_executor.py::test_executor_does_not_retry_terminal_provider_failures[invalid_config-GatewayInvalidRouteConfigError]
tests/unit/test_llm_gateway_executor.py::test_executor_does_not_retry_terminal_provider_failures[byok_rate_limit-GatewayCredentialFailureError]
tests/unit/test_llm_gateway_executor.py::test_raw_byok_key_is_not_in_provider_error_repr_or_dump
tests/unit/test_llm_gateway_openai_compatible.py::test_chat_completions_invalid_json_records_pre_route_rejection
tests/unit/test_llm_gateway_openai_compatible.py::test_chat_completions_rejects_unknown_auto_lane
tests/unit/test_llm_gateway_openai_provider.py::test_openai_compatible_provider_closes_owned_http_client
tests/unit/test_lock_bypass_fixes.py::TestConversationToolFiltering::test_get_conversations_tool_filters_locked
tests/unit/test_lock_bypass_fixes.py::TestMcpSseMemoryLockEnforcement::test_mcp_sse_edit_memory_allows_unlocked
tests/unit/test_lock_bypass_fixes.py::TestMcpSseMemoryLockEnforcement::test_mcp_sse_edit_memory_rejects_locked
tests/unit/test_lock_bypass_fixes.py::TestSyncAudioLockEnforcement::test_precache_rejects_locked
tests/unit/test_lock_bypass_fixes.py::TestUsersLockEnforcement::test_followup_question_rejects_locked
tests/unit/test_memories_validation.py::TestExtractedMemoryValidation::test_legacy_llm_category_maps_to_current_category
tests/unit/test_memory_mutation_contract.py::test_edit_memory_accepts_canonical_json_body
tests/unit/test_product_memory_read_service.py::test_fetch_default_product_memory_search_reads_authoritative_items_and_filters_default_visibility
tests/unit/test_modulate_stt.py::TestModulatePrerecorded::test_basic_transcription
tests/unit/test_modulate_stt.py::TestUtteranceResults::test_partial_superseded_by_utterance
tests/unit/test_optional_audio_codecs.py::test_sync_import_defers_missing_native_opus
tests/unit/test_parakeet_batch_routing.py::TestSetGpuWorker::test_set_and_use
tests/unit/test_parakeet_builtin_embedding.py::TestGetEmbedding::test_falls_back_to_http_when_builtin_unavailable
tests/unit/test_parakeet_endpoints.py::TestDurationGuardHTTP413::test_v1_guard_disabled_when_zero
tests/unit/test_parakeet_nim.py::TestNimTranscribe::test_nim_calls_correct_endpoint
tests/unit/test_parakeet_nim.py::TestNimTranscribe::test_nim_text_only_fallback
tests/unit/test_parakeet_prerecorded.py::TestProviderClass::test_provider_transcribe_url_delegates
tests/unit/test_parakeet_stream_session.py::TestStreamSessionFeed::test_silence_produces_no_segments
tests/unit/test_parakeet_stream_session.py::TestStreamSessionRNNTStreaming::test_streaming_utterance_does_not_call_batch_transcribe_when_text_not_ready
tests/unit/test_payment_promotion_codes.py::test_checkout_invalid_promo_returns_400
tests/unit/test_payment_promotion_codes.py::test_release_attached_schedules_releases_only_matching_active
tests/unit/test_payment_promotion_codes.py::test_release_attached_schedules_noop_without_customer
tests/unit/test_people_conversations_500s.py::TestGetPeopleDocIdInjection::test_get_people_injects_doc_id
tests/unit/test_product_capability_synthetics.py::test_output_uses_required_status_vocabulary_and_json_formatting
tests/unit/test_prompt_cache_integration.py::test_core_tools_has_26_tools
tests/unit/test_prompt_cache_integration.py::test_llm_agent_model_kwargs_via_real_instantiation
tests/unit/test_pusher_docker_context.py::test_pusher_image_layout_includes_backend_config_imports
tests/unit/test_pusher_ghost_connections.py::TestTranscribeSupervisor::test_transcribe_supervisor_session_in_try_finally
tests/unit/test_rate_limit_json_failopen.py::test_partial_cache_entry_fails_open
tests/unit/test_rate_limiting.py::TestRouterWiring::test_developer_rate_limit_failures_log_without_request
tests/unit/test_short_audio_embedding.py::TestGetWavDuration::test_different_sample_rates
tests/unit/test_speaker_id_pipeline.py::TestAudioRingBuffer::test_write_overwrites_oldest_when_capacity_exceeded
# First test to build a live SpeakerMatcher amortizes importing routers.listen.speakers
# (FastAPI router graph) into its call; later tests in this file reuse the cached import.
tests/unit/test_speaker_match.py::test_short_clips_are_pooled_before_a_live_decision
tests/unit/test_speaker_sample.py::test_verify_and_transcribe_sample_transcription_failure
tests/unit/test_speaker_sample_migration.py::test_get_migration_lock_reuses_same_key
tests/unit/test_streaming_deepgram_backoff.py::test_gated_socket_death_reason_delegates_to_safe_socket
tests/unit/test_sync_cloud_tasks.py::TestVerifyCloudTasksOidc::test_env_unset_fails_closed
tests/unit/test_sync_fair_use_gate.py::TestCreateConversationLockPropagation::test_create_conversation_default_unlocked
tests/unit/test_sync_fair_use_gate.py::TestHardRestrictionRetryAfter::test_returns_none_when_restrict_until_is_missing_or_expired
tests/unit/test_sync_fair_use_gate.py::TestSpeechDurationComputation::test_duration_from_raw_vad_segments
tests/unit/test_sync_silent_failure.py::TestProcessSegmentReal::test_success_adds_to_new_memories
tests/unit/test_sync_transcription_prefs.py::TestProcessSegmentPreferences::test_private_cloud_sync_flag_passed_to_new_conversation
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_decode_generic_exception_marks_failed
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_decode_http_exception_marks_failed
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_dg_budget_exhausted_marks_failed
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_dg_budget_not_exhausted_continues
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_empty_decode_completes_zero_segments
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_partial_segment_failure_completes
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_target_conversation_id_forwarded
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_vad_errors_mark_failed
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_zero_segments_after_vad_completes
tests/unit/test_sync_v2.py::TestV2EndpointExecution::test_get_poll_404_expired_job
tests/unit/test_sync_v2.py::TestV2EndpointExecution::test_get_poll_403_wrong_owner
tests/unit/test_sync_v2.py::TestV2EndpointExecution::test_get_poll_completed_includes_result
# Full-file isolation amortizes sync router/pipeline imports and Firestore fakes into these calls.
tests/unit/test_sync_v2.py::TestV2EndpointExecution::test_get_poll_failed_includes_error
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_fresh_soft_caps_use_the_current_subscription_plan[unlimited]
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_retry_hydration_excludes_durably_fenced_conversation_from_audio_finalization
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_inline_renew_errors_cancel_before_capacity_admission_without_releasing_retry_material
tests/unit/test_sync_v2.py::TestAsyncCoordinatorBehavioral::test_content_completion_failure_cannot_publish_completed_job
tests/unit/test_tools_rest_memory_runtime_adapter.py::test_tools_rest_get_memories_text_requests_legacy_safe_memory_decision
tests/unit/test_tools_router.py::TestRouterEnvelope::test_ok_normal
tests/unit/test_transcript_segment.py::test_forward_merge_on_short_incomplete_last_sentence
tests/unit/test_translation_optimization.py::test_confident_language_detection_handles_short_fillers_and_real_text
tests/unit/test_upstream_boundary.py::TestExtractionSeamFanOut::test_fan_out_invokes_memory_action_item_and_goal_paths_separately
tests/unit/test_user_speaker_embedding.py::TestSetUserSpeakerEmbedding::test_stores_embedding_on_user_document
tests/unit/test_user_speaker_embedding.py::TestSpeechProfileEmbeddingExtraction::test_extraction_called_after_upload
tests/unit/test_user_speaker_embedding.py::TestSpeechProfileEmbeddingExtraction::test_extraction_failure_does_not_block_upload
tests/unit/test_v3_real_router_default_off_f4.py::test_production_default_dependency_is_disabled_and_preserves_legacy_get_behavior
tests/unit/test_v3_real_router_default_off_f4.py::test_router_logs_are_sanitized_and_mutating_route_dependencies_unchanged
tests/unit/test_workstream_router_contract.py::test_openapi_exposes_intent_and_thread_resources_without_manual_workstream_create
tests/unit/test_vad_gate.py::TestVADStreamingGate::test_silence_produces_empty_output
tests/unit/test_vertex_ai_system_role.py::test_apps_router_uses_langchain_messages_not_raw_dicts
tests/unit/test_vertex_ai_system_role.py::test_generate_app_from_prompt_uses_langchain_messages
tests/unit/test_verify_backend_release_vector.py::test_legacy_binding_migration_is_idempotent_after_removal
tests/unit/test_verify_backend_release_vector.py::test_dev_deploy_migrates_only_exact_legacy_google_client_id_secrets_without_traffic
tests/unit/test_verify_backend_release_vector.py::test_legacy_binding_migration_strips_prod_legacy_bindings
tests/unit/test_voice_duration_limiter.py::TestPCMDurationComputation::test_16khz_mono_1s
tests/unit/test_workflow_contracts.py::test_workflow_contracts_static_check_accepts_current_allowlist
tests/unit/test_workflow_contracts.py::test_workflow_contract_sources_select_adjacent_tests
tests/unit/test_ws_b_short_term_lifecycle.py::test_promoted_item_readable_and_idempotent_on_second_run
tests/unit/test_ws_b_short_term_lifecycle.py::test_promotion_fires_on_batch_threshold_via_apply
tests/unit/test_ws_b_short_term_lifecycle.py::test_required_promotion_merges_multiple_sources_in_same_run
tests/unit/test_ws_c_backfill.py::test_archive_hidden_long_term_visible_in_canonical_read
tests/unit/test_ws_l_surface_routing.py::TestMcpSseLegacySearchParity::test_legacy_sse_search_uses_vector_order_and_full_firestore_docs
tests/unit/test_sync_cloud_tasks.py::test_sync_post_enqueue_cleanup_does_not_unstage
# File-isolation amortizes router/STT/VAD imports across different node IDs per run.
tests/unit/test_sync_cloud_tasks.py
tests/unit/test_fallback_observability.py
tests/unit/test_task_recommendations.py::test_no_production_branch_consumes_debug_summary_or_reason_codes
tests/unit/test_utils_import_boundary.py::test_utils_modules_do_not_import_routers
tests/unit/test_listen_session_bootstrap.py::test_project_listen_connect_decisions_pins_vocabulary_and_translation
tests/unit/test_memory_replace_policy.py::test_legacy_reextract_failure_preserves_existing_memories[extractor_side_effect0]
tests/unit/test_memory_replace_policy.py::test_legacy_reextract_failure_preserves_existing_memories[extractor_side_effect1]
tests/unit/test_inv_mem_1_guard.py::TestInvMemSourceRatchet::test_no_non_canonical_product_tier_literals_in_memory_paths
tests/unit/test_inv_mem_1_guard.py::TestInvMemSourceRatchet::test_default_read_paths_do_not_include_archive_without_explicit_mode
tests/unit/test_task_intelligence_contract_freeze.py
tests/unit/test_lock_bypass_fixes.py
tests/unit/test_byok_security_enrollment.py::TestCacheRouting::test_cached_openai_chat_no_raw_key_in_cache
# Behavior test drives the real process_segment target-attach fallback (#10033/#10119 review ask);
# it is the sole heavy test in its file, so it amortizes the sync pipeline import into its call phase.
tests/unit/test_sync_merge_target_selection.py::test_sync_target_attach_fallback_to_closest
tests/unit/test_bounded_firestore_list_reads.py::test_legacy_get_memories_no_first_page_5000_force
# File-isolation amortizes llm_gateway app/provider imports into the first oracle call.
tests/unit/test_replay_llm_gateway_fake_upstream_oracle.py::test_loopback_oracle_bypasses_ambient_proxy_configuration
# File-isolation amortizes the merge_conversations import (models/database graph) into the first call.
tests/unit/test_merge_audio_chunk_copy_failure.py::test_merge_propagates_custom_stt_marker_from_any_source
tests/unit/test_agent_proxy_async_boundaries.py::test_persistent_lease_heartbeat_failure_fails_closed_before_ttl_expires
# First test amortizes the file-isolated utils.llm.clients import into its call phase.
tests/unit/test_prompt_cache_wire_payload.py::test_get_llm_forwards_explicit_cache_options_and_production_cache_key
# Suppressed-prefix expansion round walks 500 historical stubs with status batches;
# ~0.5s CPU before and after the list-read budget threading (structural, unchanged test).
tests/unit/test_memory_offset_read_cost.py::test_status_lookups_are_not_repeated_across_expansion_rounds
# 20k-row large-offset fixture intentionally crosses the legacy 10k boundary to charge
# server-side offset() work; the in-memory doc list construction is hermetic but structural.
tests/unit/test_list_read_budget_contract.py::test_conversations_large_offsets_are_served_and_charged[20000-19000-1000]
# First test in the file-isolated memories router suite amortizes the module import.
tests/unit/test_memories_archive_and_read_contracts.py::test_get_memories_forwards_include_archive
# Full listen-runtime bootstrap (STT selection, fair-use, onboarding admission)
# sits exactly at the 0.30s CPU budget under a saturated pre-push fanout.
tests/unit/test_listen_runtime_regressions.py::test_bootstrap_forces_single_language_before_selecting_stt_for_onboarding
tests/unit/test_llm_gateway_validator.py::test_accepts_matching_output_limit_aliases
tests/unit/test_desktop_proxy.py::test_proxy_reports_upstream_unavailable_as_retryable
tests/unit/test_chat_file_upload_unsupported.py::test_heic_photo_is_rejected_as_bad_request[/v2/files]
tests/unit/test_chat_file_upload_unsupported.py::test_heic_photo_is_rejected_as_bad_request[/v1/files]
tests/unit/test_llm_gateway_coverage_guardrails.py::test_every_model_config_feature_has_inventory_and_gateway_lane
tests/unit/test_llm_gateway_coverage_guardrails.py::test_resolver_feature_literals_are_configured_and_dynamic_sites_are_reviewed
tests/unit/test_llm_gateway_embeddings_route.py::test_embeddings_success_returns_openai_shape_and_records_accounting
tests/unit/test_llm_gateway_vertex_provider.py::test_gateway_registry_uses_native_vertex_for_gemini
# File-level: red-proof AST walks of production sources exceed 0.30s CPU per
# test under saturated pre-push once this file is in the changed set.
tests/unit/test_client_processing_trust_boundary.py
# First route test in its file: amortizes the routers.users FastAPI/pydantic import into its call
# phase. Structural (the file-isolation runner model), not a per-test regression.
tests/unit/test_daily_summary_generation.py::test_create_route_happy_path