[codex] Add Teams member-info action gate#78839
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 3, 2026, 5:05 PM ET / 21:05 UTC. Summary PR surface: Source +26, Tests +45, Generated +1. Total +72 across 6 files. Reproducibility: yes. Source inspection reproduces the mismatch: current docs advertise Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land a refreshed branch that preserves current Teams Do we have a high-confidence way to reproduce the issue? Yes. Source inspection reproduces the mismatch: current docs advertise Is this the best way to solve the issue? Yes, pending branch refresh. Reusing AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 010b61746379. Label changesLabel justifications:
Evidence reviewedPR surface: Source +26, Tests +45, Generated +1. Total +72 across 6 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
f5d4025 to
fecc292
Compare
|
This pull request has been automatically marked as stale due to inactivity. |
Summary
Adds explicit config support for
channels.msteams.actions.memberInfoand wires the Microsoft Teamsmember-infomessage action through the existing action-gate pattern. When disabled, the action is hidden from message-tool discovery and direct calls return a clear disabled error.Why
The Teams documentation already documents
channels.msteams.actions.memberInfo, but the runtime config schema and message action surface did not expose or enforce that gate.Real behavior proof
Behavior or issue addressed: Microsoft Teams now honors
channels.msteams.actions.memberInfo=falsein the real message-tool discovery and action dispatch path, matching the documented config key.Real environment tested: Local OpenClaw source checkout on macOS, Node with
tsx, using the patched Microsoft Teams plugin/config code in this branch.Exact steps or command run after this patch: Ran this command from the repository root after the patch:
Evidence after fix: Terminal output from the command above:
{ "schemaAccepted": true, "parsedActions": { "memberInfo": false }, "advertisedMemberInfo": false, "advertisedStillIncludesUploadFile": true, "disabledActionResult": { "isError": true, "content": [ { "type": "text", "text": "member-info is disabled via channels.msteams.actions.memberInfo=false." } ], "details": { "error": "member-info is disabled via channels.msteams.actions.memberInfo=false." } } }Observed result after fix: The config schema accepts
actions.memberInfo=false;member-infois no longer advertised by the Teams message tool when disabled; other Teams actions such asupload-fileremain advertised; and directmember-infocalls return the explicit disabled-action error without invoking the runtime member lookup.What was not tested: Tenant-level Teams webhook delivery, Microsoft Graph member lookup against a real tenant, and Azure/manifest deployment were not exercised in this proof because this patch gates local config validation, tool discovery, and action dispatch behavior.
Validation
pnpm test:extension msteamspnpm config:channels:checkpnpm tsgo:extensions:testnode scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.extensions.json extensions/msteams/src/channel.ts extensions/msteams/src/channel.test.ts extensions/msteams/src/channel.actions.test.ts