
π§© Tools & Plugins
- Bundled tools become standalone plugins β Wait, notifications, search, A2A chat, scheduler, behavior adjustment, and the scheduler Tasks UI move into standard plugins with their own prompts and log styling.
- Memory has one tool β The four memory operations now share a
memorytool with anactionargument. Legacy calls remain compatible; custom integrations should migrate to the unified tool. - Profiles control individual actions β Allow or deny operations across the 12 bundled multi-action tools, such as permitting file reads while blocking writes. The Agent Editor groups these controls in Easy and Advanced modes.
- Tool calls are easier to recognize β Dedicated badges distinguish goal, document query, skills, vision, browser, office, and remote computer-use calls. All 47 bundled plugins also receive catalog thumbnails.
π Welcome Screen & Search
- Make the welcome screen your own β Dismiss sections, restore them together, and reorder blocks with mouse, touch, or keyboard. Layout choices persist in the browser, and plugins can add their own blocks.
- Discover plugins from the start β A Plugin Hub button and channel-plugin cards bring discovery and settings to the welcome screen. System Resources and Quick Actions support half- and full-width layouts.
- Find chats and messages β The sidebar offers Standard, Compact, and No search modes with keyboard navigation and Unicode-safe highlighting. Message search is also available through the Connector API.
- Keep files in context β Each chat gets its own file-browser folder, history, and selection by default, with an option to share a browsing session across chats.
β‘ Streaming & Model Recovery
- Responses update sooner β State pushes are coalesced at 25 milliseconds instead of 100, roughly halving the reported median interval between visible updates.
- Tool calls recover more reliably β Output-limit truncation gets a dedicated retry warning, incomplete native arguments are rejected, repairable calls reach Context Doctor, and DSML envelopes go through normal dispatch.
- Malformed output stays out of retries β Rejected or incomplete leaked calls are replaced with neutral history entries, while model prose and reasoning remain visible as thoughts during silent retries.
- Tool arguments receive their included content β
Β§Β§include(path)expands recursively at execution for Chat, native Responses, and parallel calls. - Chats resist rapid input and polling races β Duplicate sends are blocked, welcome-chat creation is serialized, and an in-flight pause is protected from stale snapshots. Message actions stay mounted during streaming.
π€ Agents, Migration & Everyday Work
- Switch profiles while a chat runs β Agent profiles can be changed during execution, and the editor loads Advanced data only when needed. Prompt editing now shows clearer section names, customization status, save paths, and variable hints.
- Chat names reflect real messages β The synthetic greeting no longer names a new chat, and subordinate agents receive the greeting's tool-call example. Matching specialists avoid redundant delegation to an identical profile.
- Bring more history along β Migrate Agents can import Pi JSONL session versions 1β3 and preserve Claude chat titles and tool-result blocks.
- Notifications and scheduled tasks recover better β Notifications can copy their title and message where appropriate, and scheduler errors clear after a successful continuation.
- Setup and updates are more dependable β Provider discovery links to the Plugin Hub during onboarding, existing
usr/.envsettings remain authoritative during migration, and self-update has a longer health timeout and faster backups.
π Security & Upgrade Notes
- Browser DOM access is same-origin β The DOM helper rejects cross-origin windows. Host browsers must restart and reconnect to discard old initialization scripts.
- Channel administration is explicit β Telegram and WhatsApp settings changes require configured administrators. Telegram configuration is now global-only; existing project- or profile-scoped settings pause the bot until reviewed and removed.
- Remote input respects terminal permissions β
input_remotenow requires permission for remote terminal execution as well as its own permission. - Custom scheduler integrations may need adjustment β Initialize the scheduler store before reading snapshots. Development checkouts nested under
/a0also receive a one-time workspace ID change and new shadow-repository location.
Read the official v2.15 release notes on GitHub.