Dispatch
Dispatch is a planner I'm building for myself: a native macOS and iPhone app that keeps my tasks on my own devices first and syncs them second. It's early: it runs, it's not finished, and it's already the most complicated thing I've written.
The rule I set at the start is that it never has to ask the network for permission. Every write lands in SwiftData locally and works offline; Supabase carries it to the other device afterwards, and realtime updates are a nudge to refresh rather than the thing recovery depends on.
The half I actually find interesting is letting an AI agent use it. Dispatch speaks MCP, but an agent never gets my account; it gets a scope that's explicit, short-lived, revocable, and narrower than my workspace, and every write it makes is checked against that scope and recorded.
A few decisions so far:
Dispatch — це планер, який я роблю для себе: нативний застосунок для macOS та iPhone, що тримає мої задачі спершу на моїх власних пристроях, а вже потім синхронізує їх. Він на ранній стадії: запускається, але не готовий, і це вже найскладніше, що я писав.
Правило, яке я поставив на початку, — застосунок ніколи не має питати дозволу в мережі. Кожен запис одразу лягає локально у SwiftData й працює офлайн; Supabase доносить його до іншого пристрою вже потім, а realtime-оновлення — це поштовх оновитися, а не те, на чому тримається відновлення даних.
Половина, яка мені справді цікава, — дати застосунку користуватися AI-агенту. Dispatch говорить через MCP, але агент ніколи не отримує мій акаунт — він отримує дозвіл, який є явним, короткочасним, відкличним і вужчим за мій робочий простір, і кожен його запис перевіряється на відповідність цьому дозволу та записується в журнал.
Кілька рішень, які вже прийняті: