Repository navigation
v0.3.0
What's Changed
- Blog: ThinkRail 0.2.0 release post by Rinat S (@rsolmano) in #768
- docs: add GitHub stars badge and star call-to-action to README by Rinat S (@rsolmano) in #785
- build: pin Bun 1.4.3 for development, CI, the CLI and the desktop runtime by Andrey Markin (@Mark-Life) in #780
- feat: mark a workspace as read or unread by Rinat S (@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 Andrey Markin (@Mark-Life) in #786
- perf(cli): compile the binary with JSC bytecode by Andrey Markin (@Mark-Life) in #781
- refactor(web): extract the file and diff renderers into @thinkrail/resource-renderers by Rinat S (@rsolmano) in #783
- feat(visualize): show workspace files and before/after mockups in chat through the shared resource renderers by Rinat S (@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 Anton Lobov (@zhuravlikjb) in #798
- feat(web): translate the interface and let users add their own languages by Rinat S (@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 Rinat S (@rsolmano) in #769
- Blog: Updates to blog posts with info about our social media by Maciej Gorywoda (@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 Rustam Sadykov (@SBOne-Kenobi) in #831
- perf(web): preload ChatView on workbench mount so a restored chat skips the Suspense reveal delay by Andrey Markin (@Mark-Life) in #789
- chore: bump Bun to 1.4.4 to drop the compromised emSign roots by Andrey Markin (@Mark-Life) in #810
- build(ts): turn on unused, implicit-return and fallthrough tsc checks by Andrey Markin (@Mark-Life) in #790
- perf(web): let the React Compiler optimize components that used try/finally by Andrey Markin (@Mark-Life) in #800
- fix(web): keep long chat message content inside user bubble by Suryakant Sahoo (@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 Andrey Markin (@Mark-Life) in #816
- perf(shared): probe the login-shell env without blocking desktop boot by Andrey Markin (@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 Sahoo (@suryakant-source) in #795
- fix(web): close history search overlay on toggle and outside click by Suryakant Sahoo (@suryakant-source) in #796
- fix(server): reject template names containing a colon by Suryakant Sahoo (@suryakant-source) in #797
- feat(locales): add a Simplified Chinese catalog by oisano (@oisano11) in #866
- feat(locales): complete the Simplified Chinese catalog by oisano (@oisano11) in #871
- docs: add star-history rank and trending badges to the README by Rinat S (@rsolmano) in #896
- Fix blinking on opening a diff and switching diff modes by Anton Lobov (@zhuravlikjb) in #799
- fix(locales): match a system language by the script it is written in by oisano (@oisano11) in #882
- docs: remove CLAUDE.md, AGENTS.md is canonical (#650) by sunilkumarpradhan (@SunilKumarPradhan) in #812
- docs(locales): stop listing bundled languages outside the README by Rinat S (@rsolmano) in #908
- fix(pi-dag): resolve Windows realpath mismatch and unbounded ENOENT recursion by Hill Patel (@STiFLeR7) in #886
- fix(server): skip non-session JSONL files when listing sessions (#876) by Ethereal49 (@Ethereal49) in #902
- chore(deps): drop the unused pi-agent-core devDependency from pi-background-commands by Olga Lavrichenko (@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 Maciej Gorywoda (@makingthematrix) in #915
- feat(desktop): ship the macOS x64 desktop build by jyking (@jyking) in #894
- fix(website-analytics): send only exceptions from first-party scripts by Rinat S (@rsolmano) in #916
- chore(deps): upgrade diff 9, marked 18, pdfjs-dist 6, linkedom 0.18 and @astrojs/react 7 by Olga Lavrichenko (@OLavrik) in #914
- refactor(desktop): drop the Windows host-bridge workaround on Electrobun 2.0.5 by Rinat S (@rsolmano) in #917
- chore(deps): React 19.3.1 stable, Monaco 0.57 and safe patch/minor bumps by Olga Lavrichenko (@OLavrik) in #926
- feat: choose the pi config folder and pass environment variables from Settings by Rinat S (@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 Rustam Sadykov (@SBOne-Kenobi) in #834
- fix(pi-dag): persist thinking level in stored outcomes by dinglz (@dingdinglz) in #927
- chore(deps): upgrade mermaid to 12 and keep the classic look by Olga Lavrichenko (@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 Olga Lavrichenko (@OLavrik) in #746
- fix(stats): count subagent spend in the session toolbar and recover it after a host crash by Olga Lavrichenko (@OLavrik) in #858
- chore(website): remove the Product Hunt badge by Rinat S (@rsolmano) in #944
- fix(tools): bound large spec and TODO output by Rustam Sadykov (@SBOne-Kenobi) in #840
- fix: show only the models an account can use and default new chats to pi's per-provider model by Olga Lavrichenko (@OLavrik) in #935
- feat: link the Discord community from the website, README, and Settings by Rinat S (@rsolmano) in #945
- feat(locales): ship Spanish as a built-in interface language by Juan José (@JhonMA82) in #942
- fix(deps): bump jsondiffpatch to 0.7.6 and dompurify to 3.4.17 by Olga Lavrichenko (@OLavrik) in #909
- fix(desktop): rebrand Windows executables whose signature entry outlived its bytes by Rinat S (@rsolmano) in #946
- docs(skills): drop ThinkRail source paths from shipped skill and tool text by Olga Lavrichenko (@OLavrik) in #877
- feat(web): let users add their own themes from ~/.thinkrail/themes by Rinat S (@rsolmano) in #937
- ci: skip app suites for docs-only changes and fix two Windows-flaky tests by Rinat S (@rsolmano) in #952
- feat(locales): add a Japanese catalog by fatcorn753 (@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 Rinat S (@rsolmano) in #956
- [Design] Unify buttons into one system and move the app onto it by Julia Shilova (@juliashilovaa) in #817
- fix(web): restore Scala syntax highlighting by Wu Shuwen (@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 Olga Lavrichenko (@OLavrik) in #808
- chore(release): version pi packages (ask-user-question 0.1.0, visualize 0.2.0) by Rinat S (@rsolmano) in #957
- fix(deps): parse split-CRLF Anthropic streams and retry cut-off ones by Rinat S (@rsolmano) in #963
- docs(readme): point at the published pi packages for the questions and visualize tools by Rinat S (@rsolmano) in #970
- docs(ci): record the release runner baselines and the Intel runner watch by Rinat S (@rsolmano) in #977
- feat(extensions): ship web access as a ThinkRail extension whose switch also covers its skills by Rinat S (@rsolmano) in #965
- fix(onboarding): login ownership, hermetic smoke:logins, and cancellable account detection (#949) by Olga Lavrichenko (@OLavrik) in #978
- fix(web): treat connected JetBrains Central as a model source so Welcome stops warning (#755) by Olga Lavrichenko (@OLavrik) in #979
- feat(projects): clone a repository into a chosen folder and open it by dinglz (@dingdinglz) in #975
- feat(server): re-attach compacted skill bodies after context compaction by Olga Lavrichenko (@OLavrik) in #873
- fix(terminal): give shells the user's environment and real account name instead of the launcher's by Olga Lavrichenko (@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 Rinat S (@rsolmano) in #1033
- feat(server): keep the survey invitation away for PostHog's wait period by Rinat S (@rsolmano) in #1034
New Contributors
- Suryakant Sahoo (@suryakant-source) made their first contribution in #792
- oisano (@oisano11) made their first contribution in #866
- sunilkumarpradhan (@SunilKumarPradhan) made their first contribution in #812
- Hill Patel (@STiFLeR7) made their first contribution in #886
- Ethereal49 (@Ethereal49) made their first contribution in #902
- jyking (@jyking) made their first contribution in #894
- dinglz (@dingdinglz) made their first contribution in #927
- Juan José (@JhonMA82) made their first contribution in #942
- fatcorn753 (@fatcorn753) made their first contribution in #885
- Wu Shuwen (@dajiaohuang) made their first contribution in #958
- artyomxx made their first contribution in #954
Full Changelog: v0.2.0...v0.3.0