Skip to content

feat: [SDK-5562] check the stored APNs Bundle ID and guide the no-key case - #82

Open
sherwinski wants to merge 1 commit into
mainfrom
sherwin/sdk-5562
Open

sherwinski wants to merge 1 commit into
mainfrom
sherwin/sdk-5562

Conversation

@sherwinski

Copy link
Copy Markdown
Collaborator

One-Line Summary

The credentials check now compares the stored APNs Bundle ID with the project's Bundle ID, and the no-key case asks the user what the dashboard shows instead of a portal walkthrough.

Ticket: SDK-5562

Details

The view-app read already returns apns_bundle_id, the topic OneSignal sends to APNs with every push; onesignal_api.py app now prints it as platforms.apns.bundle_id, and the credentials skill (Step 1, item 4) and the setup skill (Step 3) compare it with the project's Bundle ID when APNs is configured. When the presence check cannot run (an MCP-only session has no view-app read), the credentials skill sends the Push Platforms URL and asks one structured question about what the page shows. The .p8 flow now says that a key is team-level, that Apple allows 2 APNs keys per team, and which key scopes do not cover this app.

Notes

  • Investigation result: the skill text was already .p8-first, and .p12 is dashboard-only by design. The tester's 2 problems were the missing view-app read in the hosted MCP (list_apps returns app-table fields only; fixed server-side or not at all) and a Bundle ID that did not match the stored credential, which the presence check did not compare.
  • A Bundle ID mismatch does not change the presence verdict. The fix is dashboard-only, so the skill reports it in one sentence and continues.
  • The hosted MCP gap stays open: a view_app tool in mcp-http would make Step 1 work without a REST key.
  • The matching test change (evals/onesignal-api-test.py) goes to the evals repository in its own PR.

Testing

Scenario Session ID Verdict
onesignal-api-test.py (local, 52 passed, 2 new bundle_id asserts) — pass
credentials_p12 not run —

Affected areas

  • skills/setup/SKILL.md
  • skills/setup/assets/
  • skills/credentials/SKILL.md
  • skills/verify/SKILL.md
  • scripts/
  • references/

The view-app read already returns apns_bundle_id, the Bundle ID that
OneSignal sends to APNs as the topic. The script now prints it under
platforms.apns.bundle_id, and the credentials and setup skills compare it
with the project's Bundle ID when APNs is configured. A mismatch is the
one stored-credential fault visible before a test send.

When the presence check cannot run, the credentials skill now sends the
Push Platforms URL and asks the user what the dashboard shows, instead of
a portal walkthrough that may create a key the team already has. The .p8
flow says that a key is team-level, that Apple allows 2 per team, and
which key scopes do not cover this app.
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