Description
## Crash
App crashes in `StreamFrameViewController viewDidLoad` when `DataManager init` calls `managedObjectContext` on an object that does not implement that selector.
## Exception
```
Exception Reason: -[(dynamic class) managedObjectContext]: unrecognized selector sent to instance 0x109ddec60
Termination Reason: SIGNAL 6 Abort trap: 6
```
## Backtrace (key frames)
```
0 CoreFoundation __exceptionPreprocess + 164
1 libobjc.A.dylib objc_exception_throw
2 CoreFoundation -[NSObject doesNotRecognizeSelector:]
6 HydraHeadiPad -[DataManager init] + 236 (DataManager.m:33)
7 HydraHeadiPad -[StreamFrameViewController viewDidLoad] + 156 (StreamFrameViewController.m:86)
...
22 HydraHeadiPad HydraStreamSession startWithHost block (HydraStreamSession.m:63)
```
## Version
v0.2.59 (build 82), 2026-05-19
## Source issue
Crash report #288
## Root cause
`DataManager.m:33` calls `managedObjectContext` on an object. At runtime the object is a dynamic class that does not respond to that selector — likely a Core Data NSManagedObject that was deallocated or is the wrong type. `DataManager` is initialized on every `viewDidLoad` of `StreamFrameViewController`, which is presented on every stream start.
## Notes
- Distinct from #274 (MicrophoneRelay double-start)
- Versions 0.2.115+ show a different crash in MicrophoneRelay.startAsync (see issues #284-#279) suggesting DataManager may have been fixed but MicrophoneRelay regression introduced