Skip to content

fix: Remove deprecated org-role admin check, rename to isAAOAdmin#993

Merged
bokelley merged 1 commit intomainfrom
bokelley/escalation-64-fix
Feb 10, 2026
Merged

fix: Remove deprecated org-role admin check, rename to isAAOAdmin#993
bokelley merged 1 commit intomainfrom
bokelley/escalation-64-fix

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Summary

  • Escalation feat: clarify format discovery workflow and tool relationship #64 fix: Matt Egol (aao-admin working group member) was blocked from admin tools because requireAdminFromContext() checked WorkOS org role instead of aao-admin working group membership
  • Naming cleanup: Renamed isSlackUserAdminisSlackUserAAOAdmin and isWebUserAdminisWebUserAAOAdmin to distinguish AAO platform admin from WorkOS org admin
  • Bug fixes: Fixed member-context.ts (pending content used org role check) and meeting-tools.ts (schedule permission used org role check)

Changes

  • Remove deprecated isAdmin() function and all requireAdminFromContext() calls from admin-tools.ts
  • Rename exported functions and interface fields to use isAAOAdmin naming
  • Split member-context.ts admin checks: isOrgAdmin for join requests (correct), isAAOAdmin for pending content (was wrong)
  • Fix meeting-tools.ts web admin fallback to use isWebUserAAOAdmin() instead of org role

Test plan

  • All 274 tests pass
  • TypeScript compilation clean (no new errors)
  • No remaining references to old function names
  • No remaining org_membership?.role === 'admin' used for AAO admin access
  • Code review completed and suggestions addressed

🤖 Generated with Claude Code

Escalation #64: Matt Egol (aao-admin WG member) was blocked from
admin tools because requireAdminFromContext() checked WorkOS org role
instead of aao-admin working group membership.

Changes:
- Remove deprecated isAdmin() and all requireAdminFromContext() calls
- Rename isSlackUserAdmin → isSlackUserAAOAdmin
- Rename isWebUserAdmin → isWebUserAAOAdmin
- Rename interface fields and params: isAdmin → isAAOAdmin
- Fix member-context.ts: split isOrgAdmin (join requests) from
  isAAOAdmin (pending content) — same class of bug
- Fix meeting-tools.ts: replace org_membership role check with
  isWebUserAAOAdmin()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@bokelley bokelley merged commit d552f0f into main Feb 10, 2026
6 checks passed
bokelley added a commit that referenced this pull request Apr 25, 2026
Brings in our get_media_buys request-builder fix (adcp-client#987
closing #983), placeholder-ID enricher audit (#991), schema-aware
brand/account injection in the storyboard runner (#943), the
a2a_context_continuity validator (#962), A2A wire-shape capture
(#904), and triage-bot ergonomics closing adcp#3121 (#992/#993).

Two compat fixes:

- **Hint type widening.** `StoryboardStepHint` widened from
  `ContextValueRejectedHint` alone to a five-kind union.
  `renderAllHintFixPlans` now accepts the broader type and filters
  to the kind it knows how to render. Other kinds drop silently
  from the fix-plan section but the runner's per-hint `message`
  field still surfaces them.
- **Strict request-schema validation.** 5.18.0's runner rejects
  unknown fields. `pagination-integrity-property-lists.yaml`'s
  `list_type` field isn't in `create-property-list-request.json`'s
  properties (the schema has `additionalProperties: false`). Drop
  it — no handler reads the field.

Multi-page upgrade for get_media_buys_pagination_integrity deferred —
the SDK's convention extractor populates context.media_buy_id from
the first-page response, then the request-builder injects that ID
and turns page 2 into an ID-lookup. Filed adcp-client#998 with the
diagnosis. Storyboard stays at single-step until the extractor fix
lands.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant