{"repo":"NousResearch/hermes-agent","public_id":"26958","display_label":"Discord UI view classes broken by lazy install timing","summary":"A bug where Discord View/UI component classes were defined before the lazy discord.py install completed, leaving discord=None at class definition time and causing NameError failures. Multiple fix attempts address defining these classes after the lazy install.","subsystem":"gateway","counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":2,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":28817},"resolution":{"state":"resolved","by":"pr-28817"},"freshness":{"state":"verified","last_verified_at":"2026-05-19T16:28:23+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.35733333333333334},"fix_edges":[{"issue_number":26958,"pr_number":28817,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":28045,"pr_number":28817,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":26958,"title":"[Bug]: Discord View classes never defined — lazy-install leaves discord=None at class definition time","url":null,"state":"closed"},{"kind":"issue","number":28045,"title":"Discord button-based exec approval fails with NameError: ExecApprovalView is not defined — falls back to /approve text","url":null,"state":"closed"},{"kind":"pr","number":27019,"title":"fix(discord): define View classes after lazy install via _define_discord_views()","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"5a3317693","number":0},{"kind":"pr","value":"#28817","number":28817},{"kind":"pr","value":"#28261","number":28261},{"kind":"pr","value":"#28261","number":28261},{"kind":"pr","value":"#28817","number":28817}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":28261,"title":"fix(discord): define view classes after lazy discord.py install","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"5a3317693c6ddd84834c4684eb6929ade20f0962","number":0}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":28729,"title":"fix(discord): define UI component views lazily for lazy-install compa…","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"5a3317693","number":0},{"kind":"pr","value":"#28817","number":28817},{"kind":"pr","value":"#28261","number":28261},{"kind":"pr","value":"#27019","number":27019},{"kind":"pr","value":"#28261","number":28261},{"kind":"pr","value":"#28729","number":28729},{"kind":"pr","value":"#28261","number":28261},{"kind":"pr","value":"#28729","number":28729},{"kind":"pr","value":"#28817","number":28817}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":28817,"title":"fix(discord): define UI view classes after lazy install (#26958)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["gateway/platforms/discord.py","tests/gateway/test_discord_lazy_install_views.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}