{"repo":"NousResearch/hermes-agent","public_id":"26183","display_label":"Feishu approval card auth and identity fixes","summary":"Multiple bugs and fixes around Feishu/Lark approval card button authorization, covering open_id vs user_id identity mismatches, wildcard FEISHU_ALLOWED_USERS not being honored in DMs, and incorrect auth check methods being used for interactive card actions.","subsystem":"gateway","counts":{"members":22,"open_issues":8,"open_issues_distinct":8,"open_prs":8,"closed_issues":0,"merged_prs":0,"attempt_prs":14},"landed_fix":null,"resolution":{"state":"unresolved","by":null},"freshness":{"state":"never_verified","last_verified_at":null,"is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.08363636363636362},"fix_edges":[],"members":[{"kind":"issue","number":26183,"title":"[Bug]: Feishu DM authorization fails — `hermes gateway setup` writes open_id but runtime uses user_id for FEISHU_ALLOWED_USERS check","url":null,"state":"open"},{"kind":"issue","number":35032,"title":"fix(feishu): approval buttons broken after v0.15.0 upgrade when no admins configured","url":null,"state":"open"},{"kind":"issue","number":35207,"title":"[Regression] Feishu Approval Cards broken in v0.15","url":null,"state":"open"},{"kind":"issue","number":37252,"title":"Feishu/Lark: approval card-button clicks rejected for allow-listed users (open_id vs user_id mismatch)","url":null,"state":"open"},{"kind":"issue","number":40225,"title":"fix(feishu): card approval buttons use _allow_group_message instead of _is_interactive_operator_authorized, rejecting all users in DM","url":null,"state":"open"},{"kind":"issue","number":51583,"title":"Feishu: Approval card clicks rejected when `FEISHU_ALLOW_ALL_USERS=true` but `FEISHU_GROUP_POLICY` not set","url":null,"state":"open"},{"kind":"issue","number":51684,"title":"[Feishu] FEISHU_ALLOWED_USERS=* wildcard does not apply to approval card clicks","url":null,"state":"open"},{"kind":"issue","number":57202,"title":"[Bug]: FEISHU_ALLOWED_USERS=* wildcard broken for DM messages — dm_policy_rejected","url":null,"state":"open"},{"kind":"pr","number":21396,"title":"fix(feishu): prefer open_id over user_id in sender identity","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"9bd151842","number":0}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":26197,"title":"fix(feishu): prefer open_id over user_id in _resolve_sender_profile","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#21396","number":21396}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":26225,"title":"fix: align Feishu DM allowlist auth with setup open_id","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"9bd151842","number":0}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":29477,"title":"fix(feishu): allowlist auth checks open_id alongside user_id","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#26225","number":26225},{"kind":"pr","value":"#26183","number":26183},{"kind":"pr","value":"#26225","number":26225},{"kind":"pr","value":"#26197","number":26197},{"kind":"pr","value":"#21396","number":21396}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":35042,"title":"fix(feishu): use consistent auth check for approval card actions","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#34707","number":34707},{"kind":"pr","value":"#35032","number":35032},{"kind":"pr","value":"#20596","number":20596},{"kind":"pr","value":"#34707","number":34707}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":37417,"title":"fix(feishu): authorize approval clicks via cached aliases","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"552adbe0827c32df8ed9bb19e908c26eff43add7","number":0},{"kind":"commit","value":"3fa15b33dd910699f18a0529f448f97eb8f02042","number":0}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":40271,"title":"fix(feishu): card approval buttons use _is_interactive_operator_authorized (#40225)","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#40271","number":40271},{"kind":"pr","value":"#40225","number":40225}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":40330,"title":"fix(feishu): approval buttons use _is_interactive_operator_authorized (#40225)","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":40756,"title":"fix(gateway): use correct auth check for approval card actions in DM","url":null,"state":"closed","close_reason":{"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":43218,"title":"fix(feishu): use open_id as primary identity instead of user_id to prevent auth mismatch","url":null,"state":"closed","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":51778,"title":"fix(feishu): honor FEISHU_ALLOWED_USERS=* wildcard for approval card clicks","url":null,"state":"open","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":57215,"title":"fix(feishu): honor DM allowlist wildcard","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#57215","number":57215},{"kind":"pr","value":"#57202","number":57202},{"kind":"pr","value":"#57227","number":57227},{"kind":"pr","value":"#57215","number":57215},{"kind":"pr","value":"#57227","number":57227},{"kind":"pr","value":"#57215","number":57215},{"kind":"pr","value":"#57202","number":57202},{"kind":"pr","value":"#51684","number":51684}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":57227,"title":"fix(feishu): wildcard FEISHU_ALLOWED_USERS for DM admission","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#57215","number":57215},{"kind":"pr","value":"#57215","number":57215},{"kind":"pr","value":"#57215","number":57215}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":57253,"title":"fix(feishu): honor wildcard allowed users","url":null,"state":"open","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}