CoreX torch's c10::nullopt cannot implicitly convert to const std::optional<T>&. Solution: use static typed empty optionals (kNoneTensor, kNoneBool). Also unified all c10::optional forward decls to std::optional. Applied same fix to ix_moe_bridge.cpp.