mirror of
https://github.com/software-mansion/argent.git
synced 2026-09-14 19:27:14 +08:00
d01793dba4
New iOS-simulator-only tool that delivers a push via `xcrun simctl push`, streaming the payload over stdin (no temp files). Accepts either title/body/subtitle/badge/sound convenience fields (built into a proper APNS envelope) or a raw `payload` object for full control (silent pushes, custom data keys). - Pre-validates what simctl rejects cryptically: missing `aps` key, >4096 bytes, payload+convenience-field conflicts — mapped to HTTP 400 via InvalidToolInputError with a granular IOS_PUSH_PAYLOAD_INVALID code. - get_app_container install probe turns a missing app into an actionable error (definitive-false only; inconclusive probes fall through so simctl reports the real cause, e.g. the boot-device hint on a shutdown sim). - stdin 'error' listener guards the EPIPE race when simctl exits before reading the payload — without it a failed push could crash the tool-server. - Registered in setup-registry with a through-the-registry unit test (guards against the implemented-but-unregistered class of bug), added to the MCP auto-screenshot list (2 s delay for the banner animation). - New argent-push-notifications skill + rules routing entry documenting the permission prerequisite and the push → await banner → tap workflow; cross-referenced from the settings-permissions notifications row. Live-verified on an iOS 26.5 simulator (banner render, badge, tap-to-open via the notification path, silent push, all error paths) both from the workspace build and from the npm-packed artifact.