hermes-bsd/website/docs/guides
Teknium 47d5177a7d
fix(plugins): thread-safe lazy-singleton helpers; fix honcho TOCTOU (#24759) (#42150)
* fix(plugins): add thread-safe lazy-singleton helpers, fix honcho TOCTOU (#24759)

get_honcho_client() and fal's _load_fal_client() used unlocked
check-then-init: racing threads both ran the expensive build and the
loser's client (open connection) leaked.

Rather than one-off locks, add plugins/plugin_utils.py with two
reusable primitives every plugin author can drop in:
- lazy_singleton: decorator for zero-arg accessors
- SingletonSlot: manual slot for config-keyed accessors (first wins)

Both use double-checked locking; factory runs at most once; failed
builds aren't cached. honcho is the reference consumer; fal's sibling
TOCTOU gets a matching double-checked lock. Plugin dev guide documents
the pattern so future plugins don't reintroduce the race.

Closes #24759

* test(honcho): update reset test for SingletonSlot internals

test_reset_clears_singleton poked the removed _honcho_client module
global directly. Assert through the slot's public peek() surface
instead, matching the #24759 refactor.
2026-06-08 09:35:22 -07:00
..
_category_.json
automate-with-cron.md
automation-templates.md
aws-bedrock.md
azure-foundry.md
build-a-hermes-plugin.md fix(plugins): thread-safe lazy-singleton helpers; fix honcho TOCTOU (#24759) (#42150) 2026-06-08 09:35:22 -07:00
cron-script-only.md
cron-troubleshooting.md
daily-briefing-bot.md
delegation-patterns.md feat(delegation): uncap max_spawn_depth (floor 1, no ceiling) (#39772) 2026-06-05 04:46:02 -07:00
github-pr-review-agent.md
google-gemini.md
local-llm-on-mac.md
local-ollama-setup.md
microsoft-graph-app-registration.md
migrate-from-openclaw.md
minimax-oauth.md
oauth-over-ssh.md
operate-teams-meeting-pipeline.md
pipe-script-output.md
python-library.md
run-hermes-with-nous-portal.md
run-nemotron-3-ultra-free.md fix(docs): update all install instructions everywhere 2026-06-04 21:07:45 -04:00
team-telegram-assistant.md
tips.md
use-mcp-with-hermes.md
use-soul-with-hermes.md
use-voice-mode-with-hermes.md
webhook-github-pr-review.md
work-with-skills.md
xai-grok-oauth.md