Ian Macartney (@ianmacartney) 's Twitter Profile
Ian Macartney

@ianmacartney

friendly engineer. works at convex.dev
🦋 bsky.app/profile/ianmac…

ID: 14508734

calendar_today24-04-2008 08:03:50

393 Tweet

824 Followers

170 Following

Ian Macartney (@ianmacartney) 's Twitter Profile Photo

Is there a clean way for library authors to support both AI SDK v4 and v5 simultaneously? Naming a type EmbeddingModelV1 implied to me that there was a plan for backwards compatibility. EmbeddingModelV1 type was removed when V2 was added 🤔.

Ian Macartney (@ianmacartney) 's Twitter Profile Photo

Met the team recently - very impressed how fast they've built this. And giving more control over the underly Convex app / data feels like a really good model for graduating vibe apps into scalable businesses 👏

Ian Macartney (@ianmacartney) 's Twitter Profile Photo

I love working here; there's always high leverage things to do. I especially like that the approach is principled, opinionated, and (imo) starting with the right primitives. Who do you know that cares a lot about API design?

Ian Macartney (@ianmacartney) 's Twitter Profile Photo

Big updates to the Agent Component: - Abort an async stream remotely - Pending, failed, and aborted streamed messages auto-save - AI SDK v5 support - Easier to use alongside AI SDK vs. wrapping - Type-safe custom context passed to tools - <SmoothText>msg.text</SmoothText>

Ian Macartney (@ianmacartney) 's Twitter Profile Photo

Grok did a decent job, but to make it more concrete I've built two components to do this. Workpool - durable functions with steps, suspension until time/event & more Workpool - general-purpose queues w/ parallelism limits, retry configs, exactly-once execution of onComplete