hermes-agent/tests
Adam Biggs b5226caff8 fix(memory): share one SQLite connection per holographic store database
Every MemoryStore instance opened its own SQLite connection guarded by
its own RLock. Several providers coexist in one process (the main agent
plus every delegate_task subagent), so instances pointing at the same
memory_store.db raced as independent WAL writers. Combined with writes
that were not rolled back on error, one connection could leave an open
write transaction that pinned the write lock and made every other
connection's writes fail with "database is locked" for the full busy
timeout.

Instances for the same database now share ONE process-wide connection
and ONE re-entrant lock, so access is fully serialized and
cross-connection contention is impossible. The shared connection is
refcounted: closing one instance never tears it out from under a live
sibling, and the last close releases it. The connection runs in
autocommit (isolation_level=None) so a write that raises mid-method can
never leave a dangling transaction holding the write lock; the existing
explicit commit() calls become harmless no-ops.

The provider's shutdown() now calls the refcount-guarded close() instead
of just dropping the reference: leaving finalization to GC kept the
connection (and its write lock) alive indefinitely on long-running
gateways, prolonging the exact contention this fix removes. The last
provider now releases the connection deterministically while siblings
stay live; regression tests fail without the wiring.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 18:17:40 -07:00
..
acp
acp_adapter
agent test: fold deepseek-v4 cases into canonical reasoning-floor test, drop duplicate file 2026-07-09 15:04:14 +05:30
ci
cli refactor: address Phase-2 review findings on /new boundary handoff 2026-07-09 03:21:54 +05:30
computer_use
cron fix(cron): contain any per-job exception in the due scan; harden as a class 2026-07-09 17:31:47 -07:00
dashboard
docker
e2e
fakes
fixtures/plugins/example-dashboard/dashboard
gateway test(gateway): pin in-place compaction skipping the destructive rewrite 2026-07-09 18:04:00 -07:00
hermes_cli test(cli): deflake --accept-hooks position test — one driver, one import (#61734) 2026-07-09 17:56:50 -07:00
hermes_state
honcho_plugin
integration
manual
openviking_plugin
plugins fix(memory): share one SQLite connection per holographic store database 2026-07-09 18:17:40 -07:00
providers perf: avoid broad message prep deepcopies 2026-07-09 14:35:14 +05:30
run_agent fix(agent): stop switch_model from pairing new provider with stale base_url 2026-07-09 16:36:06 -07:00
scripts
secret_sources
skills
stress
tools Merge pull request #61415 from kshitijk4poor/fix/media-tag-caption 2026-07-09 15:47:39 +05:30
tui_gateway fix(delegation): fail-closed orphan handling + session-scoped delegation lifecycle 2026-07-08 07:06:15 -07:00
website
__init__.py
conftest.py
run_interrupt_test.py
test_account_usage.py
test_assistant_ui_tap_compat.py
test_atomic_replace_symlinks.py
test_background_review_list_shapes.py
test_background_review_session_isolation.py
test_base_url_hostname.py
test_batch_runner_checkpoint.py
test_bitwarden_secrets.py
test_cli_file_drop.py
test_cli_manual_compress.py
test_cli_skin_integration.py
test_code_skew.py
test_copilot_initiator.py
test_ctx_halving_fix.py
test_dashboard_sidecar_close_on_disconnect.py
test_delegate_cascade_49148.py
test_desktop_electron_pin.py feat(desktop): ts-ify everything 2026-07-08 16:24:16 -07:00
test_desktop_mac_entitlements.py
test_dispatch_session_id.py
test_empty_model_fallback.py
test_empty_session_hygiene.py
test_env_loader_op_bootstrap.py
test_env_loader_secret_sources.py
test_evidence_store.py
test_fast_safe_load.py
test_gateway_streaming_nested_config.py
test_get_tool_definitions_cache_isolation.py
test_hermes_bootstrap.py
test_hermes_constants.py
test_hermes_home_profile_warning.py
test_hermes_logging.py
test_hermes_state.py fix: offset-without-limit was silently ignored in get_messages 2026-07-09 01:36:46 +05:30
test_hermes_state_compression_locks.py
test_hermes_state_wal_fallback.py
test_honcho_client_concurrency.py
test_honcho_client_config.py
test_honcho_session_context.py
test_honcho_startup_fail_open.py
test_install_diverged_update.py
test_install_lockfile_churn.py
test_install_no_initial_commit.py
test_install_ps1_native_stderr_eap.py
test_install_ps1_node_path_for_npm.py
test_install_ps1_python_fallback_venv.py
test_install_ps1_uv_powershell_host.py
test_install_ps1_web_server_syntax_probe.py
test_install_sh_browser_install.py
test_install_sh_install_method_stamp.py
test_install_sh_node_global_prefix.py
test_install_sh_pythonpath_sanitization.py
test_install_sh_root_fhs_uv_python_path.py
test_install_sh_setup_wizard_tty_probe.py
test_install_sh_symlink_stomp.py
test_install_sh_termux_network_prereqs.py
test_install_unmerged_index.py
test_ipv4_preference.py
test_lazy_session_regressions.py
test_lint_config.py
test_live_system_guard_self_test.py
test_mcp_serve.py
test_mini_swe_runner.py
test_minimax_model_validation.py
test_minimax_oauth.py
test_minisweagent_path.py
test_model_forces_max_completion_tokens.py
test_model_picker_scroll.py
test_model_tools.py
test_model_tools_async_bridge.py
test_ollama_num_ctx.py
test_onepassword_secrets.py
test_output_cap_parsing.py
test_package_json_lazy_deps.py
test_packaging_metadata.py
test_plugin_skills.py
test_plugin_utils.py
test_process_loop_event_loop_warning.py
test_profile_isolation_runtime.py
test_project_metadata.py
test_pty_keepalive_ws.py feat(chat): reattach /api/pty sessions via ?attach= token 2026-07-07 15:15:37 -07:00
test_pty_session.py feat(pty): periodic reaper wired into dashboard lifespan 2026-07-07 15:15:37 -07:00
test_retry_utils.py
test_run_tests_parallel.py
test_sanitize_tool_error.py
test_setup_temporary_outputs.py
test_slash_worker_watchdog.py
test_sql_injection.py
test_stale_utils_module_import.py
test_state_db_malformed_repair.py
test_subprocess_home_isolation.py
test_termux_all_extra_compat.py
test_timezone.py
test_toolset_distributions.py
test_toolsets.py
test_trajectory_compressor.py
test_trajectory_compressor_async.py
test_transform_llm_output_hook.py
test_transform_tool_result_hook.py
test_tui_gateway_loop_noise.py
test_tui_gateway_queue_on_busy.py
test_tui_gateway_server.py test: accept compact_rows kwarg in tui_gateway session fakes 2026-07-09 01:36:46 +05:30
test_tui_gateway_ws.py
test_tui_mcp_late_refresh.py
test_utils_truthy_values.py
test_web_server.py
test_wheel_locales_e2e.py
test_windows_subprocess_no_window_flags.py
test_yaml_indent_consistency_31999.py
test_yuanbao_integration.py
test_yuanbao_markdown.py
test_yuanbao_pipeline.py perf(yuanbao): bounded-concurrency inbound media resolve 2026-07-08 08:05:45 -07:00
test_yuanbao_proto.py
test_yuanbao_reconnect_set_active.py
test_yuanbao_shutdown.py