The userland surface on iOS — what IosApp provides and what ig.run
accepts: every service the publicly runnable effects of the package require,
each of them required by at least one such effect. The list is the single
declaration of the surface and its type; a type test in
ios.igpapi.bridge.test.ts pins it against the package's own barrel in both
directions. The process's cookies are read-only (MobileCookies) and the
native client's protocol state rides with the transport
(TransportProtocolState). The native Transport is deliberately absent — it
takes ready bytes. Open fact:MobileHttpRequest is still in the surface
because facade bricks use it today (PostingLive, the segmented video
upload), so a caller can send an arbitrary request through it; its cost is a
request with caller-chosen headers and host, and closing it needs those
bricks moved to narrow capabilities.
IosSession and IosProcess are in the surface on purpose: the public iOS
flows run on them. The build context's IosDevice, IosApplication and
Scope.Scope are not.
The userland surface on iOS — what IosApp provides and what
ig.runaccepts: every service the publicly runnable effects of the package require, each of them required by at least one such effect. The list is the single declaration of the surface and its type; a type test inios.igpapi.bridge.test.tspins it against the package's own barrel in both directions. The process's cookies are read-only (MobileCookies) and the native client's protocol state rides with the transport (TransportProtocolState). The nativeTransportis deliberately absent — it takes ready bytes. Open fact:MobileHttpRequestis still in the surface because facade bricks use it today (PostingLive, the segmented video upload), so a caller can send an arbitrary request through it; its cost is a request with caller-chosen headers and host, and closing it needs those bricks moved to narrow capabilities.IosSessionandIosProcessare in the surface on purpose: the public iOS flows run on them. The build context'sIosDevice,IosApplicationandScope.Scopeare not.