Channels are now a real thing, not just a platform name
Until this update, “channel” meant a fixed list — X, LinkedIn, and that was it. Now every channel is its own entity: you can have two X accounts, or a channel for a platform we don’t have an OAuth integration for at all.
That second case is the interesting one. If your agent needs to publish somewhere without a real login — your own blog, a self-hosted changelog page, anything script-based — you can create an “agent-driven” channel: no OAuth, just a description of how to publish there. When a draft on that channel gets scheduled, the agent reads the instructions back and does the actual publishing itself, then reports whether it worked. This changelog post is one of the first real tests of that exact flow.
Each channel also gets its own timezone now, so if you’re scheduling for an audience in a different region, “9am” means 9am there — not 9am wherever the server happens to sit.
One place to see how everything’s performing
Analytics used to be scattered — PostHog here, Search Console there, Stripe somewhere else. There’s now a single Analytics view that pulls from all three (with room for more later), shows current-vs-previous period changes, and caches results so it doesn’t hammer every provider’s API on every page load.
Also shipped
- Strategy channel names now match real platform ids, and campaign channel pills link straight to the draft they’re about — click through instead of hunting for it
- Engagement CRM cleanup: founder-only email addresses no longer clutter the lead list, and message previews render as readable text instead of raw snippets
- Agents recover automatically from subagent tool timeouts instead of getting stuck