What's Changed
- feat(analytics): CI-only PostHog key; dev builds never report by @rsolmano in #665
- test(server): drop avoidable waits from the slowest server tests by @rsolmano in #667
- fix(server): make set_title name an unnamed workspace in the same call by @rsolmano in #658
- docs: make the README user-facing with screenshots by @rsolmano in #666
- Blog: lightweight -> agentic by @makingthematrix in #660
- feat(shell): add Cmd/Ctrl+K session switcher palette by @OLavrik in #633
- feat: shared promote-on-work loose TODO queue and a steadier Plan page by @OLavrik in #654
- fix(web): hold a diff scroll restore until the renderer has content by @danyaberezun in #674
- fix(server): typing past a live ask_user_question supersedes it like after a restart by @rsolmano in #669
- feat(extensions): visualize server half, server extension registry; delete pi-visualize by @rsolmano in #675
- perf(e2e): add heavy-load render scenarios and weak-machine mode by @Mark-Life in #617
- feat(website): track install-intent signals and let phones send the install link by @rsolmano in #677
- perf(web): stop Composer and the chat header re-rendering on every stream event by @Mark-Life in #619
- Analytics logging for todo list feature by @OLavrik in #539
- perf(web): highlight chat code off the main thread by @Mark-Life in #626
- fix(delegation): deliver the image autoResize override to subagent children by @OLavrik in #657
- fix(server): thaw a terminal frozen by a drain that never arrived by @CommanderTvis in #679
- refactor(server): type the WS handler table against the contract by @Mark-Life in #662
- refactor(web): split Workbench and isolate layout rerenders by @OLavrik in #682
- chat: keep a streaming transcript visible when the chat mounts by @Mark-Life in #636
- fix(server): reject malformed terminal and settings params by @Mark-Life in #661
- feat(web): redesign the topbar location strip as captioned segments by @danyaberezun in #659
- test: fix flaky toolValueText and detached-abort unit tests by @rsolmano in #687
- fix(shared): always adopt the login-shell PATH at host start by @rsolmano in #686
- feat(workspaces): settle quiet workspaces onto a per-project shelf by @danyaberezun in #663
- feat(web): Minimal interface with edge tool rails, and remount-free panel toggles by @danyaberezun in #680
- feat: upgrade pi to 1.1.0, gate session reloads and teardown, import the login env by @danyaberezun in #689
- feat: configurable per-chat subagent concurrency (global + workspace) by @danyaberezun in #699
- perf(web): stop review comment rows re-rendering on every streamed delta by @danyaberezun in #700
- ci: fail on React Compiler bailout drift against a census baseline by @danyaberezun in #701
- feat(web): continuous Changes review tab with hunk triage, turn receipts and a review guide by @danyaberezun in #668
- fix(web): vendor the Pierre fix for the WebKit diff text-selection crash by @OLavrik in #684
- perf(web): isolate chat chrome from streaming re-renders by @OLavrik in #697
- feat(web): denser UI with named layout tokens and a tighter line-height scale by @danyaberezun in #703
- feat: pass each project's trust to pi and name what trusting it loads by @danyaberezun in #690
- fix(server): restore chats when their saved model is unavailable by @CommanderTvis in #685
- fix(web): use OS-level window focus for desktop notification suppression by @OLavrik in #705
- feat: list ThinkRail extensions in Settings and turn them on/off by @rsolmano in #709
- feat(web): calm the topbar location bar by @rsolmano in #712
- fix(server): resolve the login-shell env only for launchers that opt in by @rsolmano in #714
- feat(web): keep the Projects rail in a stable order; sort only the topbar switcher by recent activity by @rsolmano in #713
- fix(terminal): stop polluting shell history and clear orphaned completions by @OLavrik in #715
- fix(server): keep the attention dot off while background commands or subagents run by @rsolmano in #716
- chore(deps): upgrade pi to 1.2.0 by @rsolmano in #723
- feat(server): run the MCP servers from mcp.json in chats on pi's built-in engine by @danyaberezun in #691
- feat(server): serve MCP server management, status and sign-in to clients by @danyaberezun in #692
- feat(workflow): restore the design interview as the default and keep specs amended by @rsolmano in #711
- feat(web): track MCP status and list each chat's MCP servers in its resources by @danyaberezun in #693
- feat: manage MCP servers in Settings by @danyaberezun in #694
- feat(web): render MCP tool calls, resources and tool_search as cards by @danyaberezun in #695
- feat(workflow): show rejected alternatives instead of deciding silently in brainstorming by @rsolmano in #726
- feat(web): show background work as running and clear unread results when seen by @rsolmano in #728
- feat(web): list newest workspaces first in the projects panel by @rsolmano in #725
- fix(server): re-apply review and subagent tool gates after session reload by @OLavrik in #733
- chore(pi-extensions): publish pi packages under the @thinkrail npm scope by @rsolmano in #734
- Making file and diff views virtualized and capable of loading large files by @zhuravlikjb in #731
- feat(web): show folder diff counts in the Changes tree only when collapsed by @rsolmano in #735
- Fix conflict of scrolling and panel resize by mouse by @zhuravlikjb in #736
- Settings redesign by @juliashilovaa in #710
- Loader redesign by @juliashilovaa in #727
- feat(web): move the plan to a TODO List side rail, add todo_promote, and render the plan summary as a PR body by @OLavrik in #706
- Unify notification design system across app by @juliashilovaa in #730
- feat(web): group review settings into a Review section on the Models page by @rsolmano in #744
- feat(web): set provider groups apart in the model picker by @rsolmano in #745
- feat(desktop): open Settings with Cmd+, on macOS and Ctrl+, on Windows/Linux by @rsolmano in #747
- fix(web): keep the history search overlay above message copy buttons by @HadesArchitect in #748
- feat: ask extension dialogs inside the chat and add MCP "Always allow" by @rsolmano in #749
- feat(web): calmer Connect dialog — no raw OAuth URLs, smarter paste fallback by @rsolmano in #761
- fix(agent): keep host questionnaires from being shadowed by extensions by @superjackche in #754
- fix: list an MCP call's arguments inside its approval prompt by @rsolmano in #763
- feat: rename projects from the project context menu by @HadesArchitect in #764
New Contributors
- @zhuravlikjb made their first contribution in #731
- @HadesArchitect made their first contribution in #748
- @superjackche made their first contribution in #754
Full Changelog: v0.1.6...v0.2.0