{"repo":"NousResearch/hermes-agent","public_id":"81867","display_label":"Split skill message cache into stable/volatile parts","summary":"These issues and PRs address a caching inefficiency where volatile tail bytes in skill invocation messages invalidate the entire cached prefix. The work involves declaring stable/volatile boundaries on skill turns so static prefixes can be reused across webhook events.","subsystem":null,"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":82423,"merged_at":null},"resolution":{"state":"resolved","by":"pr-82423"},"freshness":{"state":"verified","last_verified_at":"2026-08-09T09:55:13+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":81867,"pr_number":82423,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":null}],"members":[{"kind":"issue","number":81867,"title":"Webhook/skill-invocation user messages cache as one atomic block — volatile tail bytes invalidate the entire static prefix","url":null,"state":"closed"},{"kind":"pr","number":81928,"title":"perf(cache): reuse static skill prefixes across webhook events","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#82423","number":82423},{"kind":"pr","value":"#82049","number":82049},{"kind":"pr","value":"#81867","number":81867}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":81929,"title":"fix(agent): declare skill cache boundaries on the message","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#82423","number":82423},{"kind":"pr","value":"#82049","number":82049},{"kind":"pr","value":"#81867","number":81867},{"kind":"pr","value":"#82049","number":82049}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":82049,"title":"perf(cache): split skill turns at a builder-declared stable/volatile boundary","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#82423","number":82423},{"kind":"pr","value":"#81928","number":81928},{"kind":"pr","value":"#81929","number":81929}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":82423,"title":"perf(cache): split skill turns at a builder-declared stable/volatile boundary","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/prompt_cache_boundary.py","agent/prompt_caching.py","agent/skill_commands.py","cron/scheduler.py","tests/agent/test_prompt_cache_boundary.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}