From eba05bb67e09b53d603a151fc92cd094f1dd4183 Mon Sep 17 00:00:00 2001 From: Koshkoshinsk Date: Mon, 6 Jul 2026 17:55:43 +0300 Subject: [PATCH] =?UTF-8?q?add-teams:=20take=20the=20first=20non-bot=20con?= =?UTF-8?q?versation=20member=20=E2=80=94=20the=20aadObjectId=20select=20c?= =?UTF-8?q?ame=20back=20empty=20on=20a=20live=20run?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 1:1 is created with exactly one member (the owner), so first-non-bot is correct by construction; .aadObjectId is not reliably present in the members response and its GUID casing varies. Also default the display name. Live-run evidence (VM run #7): token + create-conversation with the 28: bot id and an AAD member id both work; only the members select failed. Co-Authored-By: Claude Fable 5 --- .claude/skills/add-teams/SKILL.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.claude/skills/add-teams/SKILL.md b/.claude/skills/add-teams/SKILL.md index 26cfdaaad..30587f9fb 100644 --- a/.claude/skills/add-teams/SKILL.md +++ b/.claude/skills/add-teams/SKILL.md @@ -246,11 +246,14 @@ curl -sf -X POST "https://smba.trafficmanager.net/teams/v3/conversations" -H "Au The adapter identifies inbound senders by their Bot Framework `29:` id, not the AAD id — the owner must be wired under that handle or their replies -would not be recognized. The conversation's member list has it, and selecting -by the AAD id doubles as an identity cross-check: +would not be recognized. The conversation was created with exactly one +member (the owner), so its member list is the owner by construction; the +filter only guards against channels that list the bot itself (`28:` ids). +(Don't select by `.aadObjectId` here — the field is not reliably present in +this response and its GUID casing varies.) ```nc:run effect:fetch when:have_creds=no capture:owner_handle=.id,owner_name=.name validate:^.+$ -curl -sf "https://smba.trafficmanager.net/teams/v3/conversations/{{conversation_id}}/members" -H "Authorization: Bearer {{bot_token}}" | jq -er '[.[] | select(.aadObjectId == "{{owner_aad_id}}")][0] | {id, name}' +curl -sf "https://smba.trafficmanager.net/teams/v3/conversations/{{conversation_id}}/members" -H "Authorization: Bearer {{bot_token}}" | jq -er '[.[] | select((.id // "") | startswith("28:") | not)][0] | {id, name: (.name // .givenName // "Teams user")}' ``` Compose the platform id exactly as the adapter encodes thread ids