{"repo":"NousResearch/hermes-agent","public_id":"117383","display_label":"Redundant parsing and reuse in roster polling","summary":"These issues and PRs concern unnecessary repeated parsing of profile YAML and redundant recomputation of session and ui_meta fields during the roster poll cycle when underlying files have not changed. The focus is on identifying and reducing wasteful work in the profiles listing path.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":117601,"merged_at":"2026-09-21T01:45:08+00:00"},"resolution":{"state":"resolved","by":"pr-117601"},"freshness":{"state":"verified","last_verified_at":"2026-09-21T01:45:08+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":117257,"pr_number":117601,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-21T01:45:08+00:00"},{"issue_number":117378,"pr_number":117601,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-21T01:45:08+00:00"},{"issue_number":117383,"pr_number":117601,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-21T01:45:08+00:00"}],"members":[{"kind":"issue","number":117383,"title":"[Perf]: profiles.list parses each profile.yaml twice per poll — the ui_meta read repeats the listing's own parse","url":null,"state":"closed"},{"kind":"pr","number":117258,"title":"perf(gateway): the roster poll reuses each profile's session and ui_meta fields while their sources have not moved","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#117601","number":117601}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":117384,"title":"perf(gateway): the roster's ui_meta fields are reused while profile.yaml has not changed","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#117258","number":117258},{"kind":"pr","value":"#117383","number":117383}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":117601,"title":"perf(profiles): the 5s roster poll reuses each profile's session and YAML-derived fields while their files have not moved (#117257 #117383 #117378, salvage #117258 #117380)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/profiles.py","tests/hermes_cli/test_profile_listing_cache.py","tests/tui_gateway/test_profiles_list_session_field_cache.py","tests/tui_gateway/test_profiles_list_ui_meta_cache.py","tui_gateway/methods_profiles.py","tui_gateway/profile_roster_cache.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}