{"repo":"NousResearch/hermes-agent","public_id":"104849","display_label":"Skill command cache multi-slot keying fix","summary":"These items address a cache thrashing problem where the skill command cache was not keyed by platform, home, and project identity, causing repeated full rescans. The fix converts the cache to a multi-slot dictionary keyed by those identifiers.","subsystem":"skills","counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":1,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":128315,"merged_at":"2026-09-29T23:05:06+00:00"},"resolution":{"state":"resolved","by":"pr-128315"},"freshness":{"state":"verified","last_verified_at":"2026-09-29T23:05:06+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":104849,"pr_number":128315,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-29T23:05:06+00:00"}],"members":[{"kind":"issue","number":104849,"title":"[desktop] Skill command cache thrashes — full skills-dir rescan every ~5s","url":null,"state":"closed"},{"kind":"pr","number":104864,"title":"fix(skills): convert skill command cache to multi-slot dict (platform/home identity isolation)","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"b8a8be185d","number":0},{"kind":"commit","value":"341f95b249","number":0},{"kind":"pr","value":"#127647","number":127647},{"kind":"pr","value":"#114888","number":114888},{"kind":"pr","value":"#114359","number":114359},{"kind":"pr","value":"#104849","number":104849},{"kind":"pr","value":"#125487","number":125487},{"kind":"pr","value":"#125498","number":125498},{"kind":"pr","value":"#125496","number":125496}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":128315,"title":"fix(skills): multi-slot skill-command cache keyed by (platform, home, project)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/skill_commands.py","tests/agent/test_prompt_cache_boundary.py","tests/agent/test_skill_cache_thrash.py","tests/agent/test_skill_commands.py","tests/agent/test_skill_commands_reload.py","tests/agent/test_skill_invocation_description.py","tests/gateway/test_stacked_skill_platform_disabled.py","tests/gateway/test_webhook_adapter.py","tests/hermes_cli/test_session_skill_previews.py","tests/openviking_plugin/test_openviking.py","tests/tui_gateway/test_protocol.py","tests/tui_gateway/test_tui_gateway_server.py","tui_gateway/methods_tools.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}