I have a confession: I'm a productivity app addict. Notion, Todoist, Things, TickTick, Bear, Obsidian — I've tried them all. And every single one failed me in the same way. Not because they were bad apps. But because they let me add unlimited tasks. So I'd wake up Monday morning, open my to-do app, and see 47 items staring back at me. By 9am I was already paralyzed. Decision fatigue is real. When
In the gold rush of Artificial Intelligence, developers often obsess over model parameters, token limits, and inference speeds. But in the Apple ecosystem, a groundbreaking AI model is only as good as the interface that houses it. If your app delivers world-changing insights but hides them behind a keyboard or makes them invisible to VoiceOver users, it isn't a "smart" app—it’s a broken one. Build
The previous three posts covered how events flow from the SDK to the UI, how the timeline renders, and how tool cards visualize. This final post looks at SwiftWork's infrastructure — how data is stored, how state is restored, how Markdown is rendered, how code is highlighted, and how API keys are managed. These components are independent, but all essential to making the app usable. SwiftWork uses
The previous two posts covered how events flow from the SDK to the UI. This post focuses on visualizing one specific type of event: tool calls. Tool invocations are the most frequent operations in an Agent application. A typical task might call tools twenty or thirty times—reading files, writing files, executing commands, searching code. If every tool call renders as the same gray block, it's hard
Post 1 covered how AgentBridge converts the SDK's AsyncStream<SDKMessage> into [AgentEvent]. This post looks at what [AgentEvent] becomes — how TimelineView renders 18 event types, handles scroll behavior, and stays smooth when the event count gets large. TimelineView is the main body of the workspace, filling all the space between the sidebar and the input box. Its view hierarchy is shallow: Time
Post 0 painted the full picture: AsyncStream<SDKMessage> → AgentBridge → EventMapper → SwiftUI. This post breaks open the two middle layers: AgentBridge and EventMapper, to see how they transform the SDK's message stream into an event list that SwiftUI can consume directly. Let's start with the conclusion: AgentBridge is the single most complex file in the entire app. It does five things at once:
Across the previous seven articles plus a bonus chapter, we thoroughly explored the inner workings of Open Agent SDK — Agent Loop, the tool system, MCP integration, multi-Agent collaboration, conversation persistence, and multi-LLM support. The bonus chapter even embedded the SDK into a macOS native app, Motive, and ran it live. But Motive was just a backend-swap experiment. The real question is:
Microsoft's 'Co-Authored-by Copilot' Tag: Unpacking the Strategic Play for AI Dominance in VS Code The persistent insertion of 'Co-Authored-by: Copilot' into commit messages within VS Code—often irrespective of GitHub Copilot's active contribution to specific changes—is far from a benign engineering detail. It represents a calculated, multi-faceted strategic maneuver by Microsoft, signaling a pr