{"repo":"NousResearch/hermes-agent","public_id":"108995","display_label":"Memory provider workers context and secret binding","summary":"These items address a bug where OpenViking background worker threads start without the correct context, causing secret resolution failures and broken memory writes under multiplexed profiles. The work involves refactoring memory providers to spawn context-bound threads and surface secret errors loudly.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":109563,"merged_at":"2026-09-13T12:19:48+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-13T12:19:48+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":108995,"pr_number":109563,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-13T12:19:48+00:00"}],"members":[{"kind":"issue","number":108995,"title":"[Bug]: OpenViking background workers start with an empty Context, so a multiplexed secondary profile's memory writes die on UnscopedSecretError","url":null,"state":"closed"},{"kind":"pr","number":108996,"title":"fix(memory/openviking): run background workers in the spawner's context","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#109563","number":109563}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":109563,"title":"refactor(plugins): memory providers spawn context-bound threads and use core config/JSON writers; secret shims fail loud; HERMES_HOME and model-provider thinking/fetch_models copies collapse","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/azure_identity_adapter.py","agent/memory_manager.py","agent/memory_provider.py","agent/reasoning_effort.py","hermes_cli/models.py","plugins/memory/byterover/__init__.py","plugins/memory/hindsight/__init__.py","plugins/memory/holographic/__init__.py","plugins/memory/honcho/__init__.py","plugins/memory/honcho/cli.py","plugins/memory/honcho/client.py","plugins/memory/honcho/dialectic.py","plugins/memory/honcho/oauth.py","plugins/memory/honcho/recall_sync.py","plugins/memory/honcho/session.py","plugins/memory/mem0/__init__.py","plugins/memory/mem0/_oss_providers.py","plugins/memory/mem0/_setup.py","plugins/memory/openviking/__init__.py","plugins/memory/retaindb/__init__.py","plugins/memory/supermemory/__init__.py","plugins/model-providers/actual/__init__.py","plugins/model-providers/bedrock/__init__.py","plugins/model-providers/commandcode/__init__.py","plugins/model-providers/copilot-acp/__init__.py","plugins/model-providers/deepseek/__init__.py","plugins/model-providers/kimi-coding/__init__.py","plugins/model-providers/opencode-free/__init__.py","plugins/model-providers/opencode-zen/__init__.py","plugins/model-providers/vertex/__init__.py","plugins/observability/langfuse/__init__.py","plugins/platforms/a2a/protocol.py","plugins/platforms/a2a/security.py","plugins/platforms/a2a/tools.py","plugins/platforms/google_chat/adapter.py","plugins/platforms/photon/auth.py","plugins/platforms/telegram/adapter.py","providers/base.py","tests/hermes_cli/test_ai_gateway_models.py","tests/honcho_plugin/test_client_identity_isolation.py","tests/plugins/memory/test_hindsight_provider.py","tests/plugins/memory/test_holographic_save_config.py","tests/plugins/memory/test_mem0_v3.py","tests/plugins/memory/test_provider_threads_inherit_profile.py","tests/plugins/model_providers/test_commandcode_profile.py","tests/plugins/model_providers/test_thinking_toggle_parity.py","tests/plugins/test_langfuse_plugin.py","tests/plugins/test_plugin_paths_follow_profile.py","tests/plugins/test_scoped_secret_readers_fail_closed.py","tests/providers/test_fetch_models_base_url.py","utils.py","website/docs/developer-guide/memory-provider-plugin.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}