-
Notifications
You must be signed in to change notification settings - Fork 98
Implement a runtime capability registry for optional GuildPass SDK features #455
Copy link
Copy link
Closed
Labels
GrantFox OSSGrantFox Open Source Sponsorship program tagGrantFox Open Source Sponsorship program tagMaybe RewardedIssue may qualify for a reward upon successful completion per campaign rulesIssue may qualify for a reward upon successful completion per campaign rulesThird CampaignOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsadvancedAdvanced difficulty tasks requiring significant domain knowledge and implementation effortAdvanced difficulty tasks requiring significant domain knowledge and implementation effortbackendBackend services, application logic, persistence integration, and server-side functionalityBackend services, application logic, persistence integration, and server-side functionalitycompatibilityCompatibility improvements across environments, versions, platforms, or integrationsCompatibility improvements across environments, versions, platforms, or integrationstype-safetyTypeScript type system improvements and strict type enforcementTypeScript type system improvements and strict type enforcement
Description
Activity
Metadata
Metadata
Assignees
Labels
GrantFox OSSGrantFox Open Source Sponsorship program tagGrantFox Open Source Sponsorship program tagMaybe RewardedIssue may qualify for a reward upon successful completion per campaign rulesIssue may qualify for a reward upon successful completion per campaign rulesThird CampaignOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsadvancedAdvanced difficulty tasks requiring significant domain knowledge and implementation effortAdvanced difficulty tasks requiring significant domain knowledge and implementation effortbackendBackend services, application logic, persistence integration, and server-side functionalityBackend services, application logic, persistence integration, and server-side functionalitycompatibilityCompatibility improvements across environments, versions, platforms, or integrationsCompatibility improvements across environments, versions, platforms, or integrationstype-safetyTypeScript type system improvements and strict type enforcementTypeScript type system improvements and strict type enforcement
Difficulty: Advanced
Type: Feature
Recommended labels (if available in this repo): compatibility, type-safety, backend, advanced
Background
GuildPass SDK V2 is intentionally being rebuilt incrementally. Different backend deployments or future contract versions may expose different capabilities.
The SDK needs a safe way to represent and query supported capabilities without scattering string comparisons throughout client code.
This issue introduces a standalone runtime capability registry.
Problem
There is currently no canonical representation for SDK capabilities such as
membership.read,access.check, or future Stellar-related functionality.Free-form strings can produce typos, ambiguous feature detection, and inconsistent compatibility behaviour.
Expected Outcome
Implement a typed capability registry that validates capability identifiers, tracks supported versions, and provides deterministic capability checks.
Suggested Implementation
A capability may resemble:
The registry should:
hasCapability(id);getCapabilityVersion(id);If semantic version comparison is implemented, it must be self-contained within this issue rather than depending on another campaign contribution.
Acceptance Criteria
pnpm typecheckpasses.pnpm buildpasses.pnpm testpasses.Likely Affected Files/Directories
Independence Requirement
This issue must be independently implementable from the current SDK baseline and must not depend on transport, API, or server changes.