What's Changed
- Blog: ThinkRail 0.2.0 release post by @rsolmano in #768
- docs: add GitHub stars badge and star call-to-action to README by @rsolmano in #785
- build: pin Bun 1.4.3 for development, CI, the CLI and the desktop runtime by @Mark-Life in #780
- feat: mark a workspace as read or unread by @rsolmano in #770
- feat(web): collapse background results into one Resources-style row with its own round by @danyaberezun in #778
- perf(web): stop transcript reads from waiting on watcher readiness by @Mark-Life in #786
- perf(cli): compile the binary with JSC bytecode by @Mark-Life in #781
- refactor(web): extract the file and diff renderers into @thinkrail/resource-renderers by @rsolmano in #783
- feat(visualize): show workspace files and before/after mockups in chat through the shared resource renderers by @rsolmano in #784
- feat(web): merge Changes into a VS Code-like Files panel by @danyaberezun in #779
- fix: use one spelling for Windows directory and relative paths by @danyaberezun in #775
- feat: always show Remote and Pull request in the topbar with the branch's next step by @danyaberezun in #771
- feat: GitHub review details and actions in the topbar by @danyaberezun in #776
- Minor performance improvements by @zhuravlikjb in #798
- feat(web): translate the interface and let users add their own languages by @rsolmano in #788
- fix(desktop): make Windows updates install and show the install journey across the restart by @danyaberezun in #803
- feat: unconditional PII-free PostHog error tracking with readable stacks by @rsolmano in #769
- Blog: Updates to blog posts with info about our social media by @makingthematrix in #809
- ci: add a single CI passed gate and skip heavy jobs for site-only changes by @danyaberezun in #818
- ci: drop the legacy required-check mirror jobs by @danyaberezun in #819
- ci: install Chromium without apt deps and cache desktop apt packages from main by @danyaberezun in #820
- fix: stabilize the tests that fail CI across unrelated branches by @danyaberezun in #821
- ci: classify a merge group against its target branch, not the entry ahead by @danyaberezun in #824
- docs: record that Windows desktop payload binaries are JetBrains-signed by @danyaberezun in #811
- docs: record that the release controller numbers past the update feed by @danyaberezun in #826
- fix(web): keep focus in place when hiding a side or the bottom panel by @danyaberezun in #827
- test(server): persist terminal recordings only after a printed marker arrives by @danyaberezun in #828
- fix(shared): re-check the Central artifact once a moved watch is live by @danyaberezun in #830
- test: give the Windows path gate a 30 s per-test budget by @danyaberezun in #832
- test(server): give the stubborn stdio MCP termination test a budget above its own wait by @danyaberezun in #833
- fix(web): focus a retried terminal only after its failed frame stops being inert by @danyaberezun in #837
- test(e2e): prove terminal output isolation with markers only command output can print by @danyaberezun in #838
- test(e2e): force the recall-then-replace interleaving instead of sampling it under CPU throttling by @danyaberezun in #839
- test(e2e): branch the Welcome provider warning check on the host's provider state by @danyaberezun in #841
- test(e2e): let the chat's placement motion settle before clicking a sticky breadcrumb target by @danyaberezun in #842
- test(e2e): click Latest and interrupt its return in one task from the current position by @danyaberezun in #843
- fix(web): correct the reading anchor after a fold change only once Virtuoso has measured it by @danyaberezun in #844
- fix(web): keep Virtuoso's own scroll corrections out of reader intent by @danyaberezun in #845
- fix(resource-renderers): reuse a finished diff when React restarts the Show-anyway render by @danyaberezun in #846
- fix(resource-renderers): keep the preview's state object when a re-read changes nothing by @danyaberezun in #847
- test: warm PowerShell once before the timed install.ps1 tests by @danyaberezun in #849
- test(server): keep each chat-resources test's commands and publisher inside that test by @danyaberezun in #850
- feat(scripts): add an on-demand CI flake report by @danyaberezun in #851
- ci: run artifact suites on PRs only for artifact changes; drop Windows caches; bound jobs by @danyaberezun in #825
- test(server): close an idle terminal only after its shell finished starting by @danyaberezun in #829
- test(e2e): reach Monaco through an actionability-checked hover before wheel scrolling by @danyaberezun in #848
- fix(subagents): support strict thinking suffixes in model references by @SBOne-Kenobi in #831
- perf(web): preload ChatView on workbench mount so a restored chat skips the Suspense reveal delay by @Mark-Life in #789
- chore: bump Bun to 1.4.4 to drop the compromised emSign roots by @Mark-Life in #810
- build(ts): turn on unused, implicit-return and fallthrough tsc checks by @Mark-Life in #790
- perf(web): let the React Compiler optimize components that used try/finally by @Mark-Life in #800
- fix(web): keep long chat message content inside user bubble by @suryakant-source in #792
- feat(web): show subagent model and effort in Resources by @danyaberezun in #855
- perf(resource-renderers): mount Monaco directly without @monaco-editor/react by @Mark-Life in #816
- perf(shared): probe the login-shell env without blocking desktop boot by @Mark-Life in #791
- test(e2e): stop the ask_user_question and theme.spec flakes by @danyaberezun in #862
- fix(server): omit deleted project folders from Recent Projects by @suryakant-source in #795
- fix(web): close history search overlay on toggle and outside click by @suryakant-source in #796
- fix(server): reject template names containing a colon by @suryakant-source in #797
- feat(locales): add a Simplified Chinese catalog by @oisano11 in #866
- feat(locales): complete the Simplified Chinese catalog by @oisano11 in #871
- docs: add star-history rank and trending badges to the README by @rsolmano in #896
- Fix blinking on opening a diff and switching diff modes by @zhuravlikjb in #799
- fix(locales): match a system language by the script it is written in by @oisano11 in #882
- docs: remove CLAUDE.md, AGENTS.md is canonical (#650) by @SunilKumarPradhan in #812
- docs(locales): stop listing bundled languages outside the README by @rsolmano in #908
- fix(pi-dag): resolve Windows realpath mismatch and unbounded ENOENT recursion by @STiFLeR7 in #886
- fix(server): skip non-session JSONL files when listing sessions (#876) by @Ethereal49 in #902
- chore(deps): drop the unused pi-agent-core devDependency from pi-background-commands by @OLavrik in #913
- fix: show ThinkRail's icon and name on Windows executables instead of Bun's by @danyaberezun in #881
- Product Hunt's badge for Tuesday, Oct 27 by @makingthematrix in #915
- feat(desktop): ship the macOS x64 desktop build by @jyking in #894
- fix(website-analytics): send only exceptions from first-party scripts by @rsolmano in #916
- chore(deps): upgrade diff 9, marked 18, pdfjs-dist 6, linkedom 0.18 and @astrojs/react 7 by @OLavrik in #914
- refactor(desktop): drop the Windows host-bridge workaround on Electrobun 2.0.5 by @rsolmano in #917
- chore(deps): React 19.3.1 stable, Monaco 0.57 and safe patch/minor bumps by @OLavrik in #926
- feat: choose the pi config folder and pass environment variables from Settings by @rsolmano in #912
- feat: label an unnamed chat by its first prompt until the agent or the user names it by @danyaberezun in #911
- fix(agent): upgrade Pi to remove fixed compaction output caps by @SBOne-Kenobi in #834
- fix(pi-dag): persist thinking level in stored outcomes by @dingdinglz in #927
- chore(deps): upgrade mermaid to 12 and keep the classic look by @OLavrik in #923
- fix: deliver background results to the agent once, at its next step by @danyaberezun in #940
- fix(web): hide the review Split/Inline toggle for layout-less scopes; extract useReviewReveal by @OLavrik in #746
- fix(stats): count subagent spend in the session toolbar and recover it after a host crash by @OLavrik in #858
- chore(website): remove the Product Hunt badge by @rsolmano in #944
- fix(tools): bound large spec and TODO output by @SBOne-Kenobi in #840
- fix: show only the models an account can use and default new chats to pi's per-provider model by @OLavrik in #935
- feat: link the Discord community from the website, README, and Settings by @rsolmano in #945
- feat(locales): ship Spanish as a built-in interface language by @JhonMA82 in #942
- fix(deps): bump jsondiffpatch to 0.7.6 and dompurify to 3.4.17 by @OLavrik in #909
- fix(desktop): rebrand Windows executables whose signature entry outlived its bytes by @rsolmano in #946
- docs(skills): drop ThinkRail source paths from shipped skill and tool text by @OLavrik in #877
- feat(web): let users add their own themes from ~/.thinkrail/themes by @rsolmano in #937
- ci: skip app suites for docs-only changes and fix two Windows-flaky tests by @rsolmano in #952
- feat(locales): add a Japanese catalog by @fatcorn753 in #885
- feat(extensions): run ask_user_question as a portable pi package composed per session by @danyaberezun in #869
- feat(locales): translate the Japanese strings added since the catalog shipped by @rsolmano in #956
- [Design] Unify buttons into one system and move the app onto it by @juliashilovaa in #817
- fix(web): restore Scala syntax highlighting by @dajiaohuang in #958
- feat(website): ask a short survey after a desktop download by @artyomxx in #954
- feat(web): first-run onboarding — intro, privacy and connect-and-verify wizard, recommendations from detected accounts, and Start a new project by @OLavrik in #808
- chore(release): version pi packages (ask-user-question 0.1.0, visualize 0.2.0) by @rsolmano in #957
- fix(deps): parse split-CRLF Anthropic streams and retry cut-off ones by @rsolmano in #963
- docs(readme): point at the published pi packages for the questions and visualize tools by @rsolmano in #970
- docs(ci): record the release runner baselines and the Intel runner watch by @rsolmano in #977
- feat(extensions): ship web access as a ThinkRail extension whose switch also covers its skills by @rsolmano in #965
- fix(onboarding): login ownership, hermetic smoke:logins, and cancellable account detection (#949) by @OLavrik in #978
- fix(web): treat connected JetBrains Central as a model source so Welcome stops warning (#755) by @OLavrik in #979
- feat(projects): clone a repository into a chosen folder and open it by @dingdinglz in #975
- feat(server): re-attach compacted skill bodies after context compaction by @OLavrik in #873
- fix(terminal): give shells the user's environment and real account name instead of the launcher's by @OLavrik in #861
- feat(resources): keep finished background work out of the dock and persist each chat's history across restarts by @danyaberezun in #1004
- fix(subagents): load the extension that registered a child's model provider by @danyaberezun in #1027
- feat: in-app survey by @artyomxx in #997
- feat: show the in-app survey in the app language from its PostHog translations by @rsolmano in #1033
- feat(server): keep the survey invitation away for PostHog's wait period by @rsolmano in #1034
New Contributors
- @suryakant-source made their first contribution in #792
- @oisano11 made their first contribution in #866
- @SunilKumarPradhan made their first contribution in #812
- @STiFLeR7 made their first contribution in #886
- @Ethereal49 made their first contribution in #902
- @jyking made their first contribution in #894
- @dingdinglz made their first contribution in #927
- @JhonMA82 made their first contribution in #942
- @fatcorn753 made their first contribution in #885
- @dajiaohuang made their first contribution in #958
- @artyomxx made their first contribution in #954
Full Changelog: v0.2.0...v0.3.0