{"repo":"NousResearch/hermes-agent","public_id":"117788","display_label":"Bot chat performance: capability epoch and skill indexing fixes","summary":"These issues and pull requests address performance problems where archived skills incorrectly influenced the capability epoch, causing unnecessary system prompt rebuilds, and optimize skill indexing using iter_skill_index_files. Additional improvements include reducing SQLite connections and deduplicating memory-context bullets.","subsystem":"skills","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":118962},"resolution":{"state":"resolved","by":"pr-118962"},"freshness":{"state":"verified","last_verified_at":"2026-09-22T10:25:10+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":117397,"pr_number":118962,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":117788,"pr_number":118962,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":117949,"pr_number":118962,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":117788,"title":"[Perf]: the capability epoch counts archived skills, so archiving one rebuilds every Bot Chat's system prompt","url":null,"state":"closed"},{"kind":"pr","number":117789,"title":"perf(bot-mode): the capability epoch counts the skills the model can invoke, not archived ones","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"28bd8cc08c","number":0},{"kind":"commit","value":"6df4571177","number":0},{"kind":"commit","value":"eccc9ab49a","number":0},{"kind":"commit","value":"1238dbc09d","number":0},{"kind":"pr","value":"#118962","number":118962}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":117912,"title":"perf: use iter_skill_index_files in capability_fingerprint","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#117789","number":117789},{"kind":"pr","value":"#117788","number":117788}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":118962,"title":"perf: one SQLite connection per delivered reply, memory-context bullets stated once, capability epoch ignores archived skills (salvage #117399, #117789, #117951)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/memory_manager.py","gateway/delivery_ledger.py","tests/agent/test_memory_context_dedupe.py","tests/gateway/test_delivery_ledger.py","tests/gateway/test_delivery_ledger_single_connection.py","tests/tools/test_capability_fingerprint_skill_scope.py","tools/bot_mode_probe.py"]},{"kind":"pr","number":119577,"title":"perf: use iter_skill_index_files in capability_fingerprint (closes #117788)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#117788","number":117788},{"kind":"pr","value":"#117788","number":117788}],"category":"uncategorized","implication":"needs_llm"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}