cb39218a44
The transform hook was failing to inject synthetic parts because message.info.sessionID is not always available in the OpenCode SDK. Fix: Use getMainSessionID() as fallback when message.info.sessionID is undefined. This ensures keyword-detector and claude-code-hooks content (like ulw/ultrawork) is properly injected even when the SDK doesn't provide sessionID in message.info.