Releases: AppTelepath/AppTelepath-iOS
Release list
3.8.0
In-app feedback now carries enough to act on.
- Diagnostics are attached by the relay right after a report is submitted: clustered errors, failed and slow requests, crashes and hangs from the 120 s before it. Works with 3.7.0 apps as well; nothing to change.
- Anchors carry a structural locator (
pathwith sibling indexes, table/collectioncell,labelMatches), so an agent can find the tapped element even when it has noaccessibilityIdentifier. - A short trail of what the person did before submitting: screens opened, elements tapped, background/foreground. Text fields record the placeholder only, never typed content. Telepath's own UI is never recorded.
- The picked element is outlined in the submitted screenshot.
- New device command
ui.findre-locates an element from a feedback anchor on the live screen.
Behavior note: to record the trail, the SDK exchanges -[UIViewController viewDidAppear:] and -[UIApplication sendEvent:]; both call through to the original implementation, and Telepath.stop stops recording.
No migration needed. Install with pod 'AppTelepath', '~> 3.8' (or Telepath), or SwiftPM from: "3.8.0".
3.7.0
Network capture no longer changes what your app's networking does.
- Certificate pinning was bypassed while capture was on.
ServerTrustchallenges now reach yourURLSessiondelegate. Other challenge types still take the system default path during capture; credentials supplied fromdidReceiveChallengewill not be applied. Upgrade if you rely on pinning. - Session configuration is carried to the forwarded request: cookie storage, TLS bounds,
URLCache, credential storage, timeouts, cellular flags, proxy, DNSSEC. Ephemeral sessions no longer send the shared cookie jar. NSURLSessionWebSocketTaskworks with capture on (it failed with-1005before).- Response bodies are capped at 5 MB in memory;
text/event-streamandmultipart/x-mixed-replaceare not buffered. - The first
log.recentcall could crash the host. Fixed.
New:
net.listreturns the newest records;setNetworkCaptureEnabled(false)is honored;net.record { enabled }switches capture off.perf.snapshotmeasures one 1-second window and stops after 5 idle seconds instead of keeping aCADisplayLinkforever. A cold snapshot takes about a second.- Redirect hops are recorded one per hop, linked by
redirectedFrom.
3.6.0
Three cases where a command returned ok while nothing happened on the device.
- Long press never reached your handler. The touch was held 466ms — under UIKit's 500ms threshold.
- The gesture fallback fired host handlers twice per state transition.
- The device never slept. Keep-awake was tied to the connection, not to activity, and disconnecting overwrote your own
idleTimerDisabled. Now leased per agent action; opt out withTLPAgentConfig.screenAwakeWhileDebugging = NO.
New:
ui.treesummary takescontains/regionfilters. A filtered result always carries afilterfield — its absence means nothing was filtered.log.recentalso reads the unified log (os_log); SwiftLoggerand React Nativeconsole.*were invisible before.- React Native
testIDsurfaces asaccessibilityId. - Locating by
labelpicks the smallest match instead of the outermost container. ui.tree/ui.tapreportappActive:falsewhen a system dialog covers the app.
3.5.0
Agents can operate the UI; testers can push back on a fix.
Deploy your relay before shipping this SDK. An outdated relay silently records a "still not fixed" as an ordinary reply.
- Taps synthesize a real touch, so React Native
PressableandtouchesBegan:views react. Falls back when the element is covered, and reports which path it used. - Long press, long-press-drag, and pinch to zoom.
- Inspect one element: geometry, colours, truncation, clipping, what covers it, Auto Layout ambiguity.
- Pinch/rotate-only views now appear in the UI summary.
- Testers can say "still not fixed" on a resolved report instead of filing a new one.
3.4.0
3.3.2
Feedback can go back and forth.
Upgrade the SDK and the relay together. On 3.3.1 the resolution note disappears and questions cannot be answered.
- Agents can ask a clarifying question; it appears in the reporter's app with a reply box. Capped at 10 messages per item.
- Unread badge on the floating entry; "My feedback" is its own screen with the full thread.
3.2.0
Connection liveness on both ends.
- Reconnect is unbounded (30s cap, jittered) and immediate on network changes or when the app returns to the foreground. It previously gave up after two attempts.
- Pong timeout on the client; two missed pongs mark the link dead.
- Application-level heartbeat so the relay can close ghost connections.
3.1.0
In-app feedback: a tester long-presses the floating ball (or shakes the device) and writes one sentence. It is submitted with the screen, the element they picked, the build, and the appearance and simulation state.
Adds Swift Package Manager support.
-ObjC to Other Linker Flags. CocoaPods does this for you; without it some features fail at runtime with an unrecognized selector.
3.0.0
Breaking. The in-app debug panel is removed. The device keeps a single connection screen.
import Telepathand#import <Telepath/Telepath.h>are unchanged.- Panel-related public classes are gone — use the equivalent agent command or the web console.
- New:
Telepath.presentConnectionScreen()andTelepath.sdkVersion. - Contacts, EventKit, Photos and AVFoundation are no longer linked into your binary.
- The pod is published under two names,
AppTelepathandTelepath. Same binary — pick one, do not add both.
2.1.2
- Improved tapping, multi-window screenshots and performance charts.
- Improved the on-device entry, connection state and settings screen.
- Optional React Native Fabric tap adapter.
- Fixes: headless start, read-only SQL detection, credential redaction.
For authorized development and testing builds only; not for App Store submissions.