What's Changed
- feat(i18n): Add Russian localization (ru) by @arhipov-om in #998
- chore(lint): turn noExplicitAny and noNonNullAssertion into errors by @Mark-Life in #1076
- Blog: GUI overview by @makingthematrix in #991
- Blog: review fixes for the GUI overview post (stacked on #991) by @danyaberezun in #999
- feat: warn that Claude subscription sign-in bills ThinkRail usage as Anthropic extra usage by @rsolmano in #1073
- Blog: ThinkRail 0.3.0 release post by @rsolmano in #1041
- fix(server): warn about Anthropic extra usage when an extension switches the model by @rsolmano in #1077
- build(web): typecheck tests, scripts, and vite config by @Mark-Life in #1069
- test(web): typecheck shell tests by @Mark-Life in #1070
- feat(extensions): install, view and switch pi packages from Settings → Extensions by @rsolmano in #1025
- test(web): typecheck chat and store tests by @Mark-Life in #1071
- test(web): typecheck panels tests by @Mark-Life in #1072
- fix(resources): recover from a refused Resources read and make replay overflow observable by @rsolmano in #987
- fix(host): stop holding replay slots for requests the page gave up on by @rsolmano in #988
- settings: center the dialog close button in the header by @Mark-Life in #1022
- ci: download Playwright's headless shell in the background during the build by @Mark-Life in #1058
- fix(web): keep one workspace read in flight per site by @Mark-Life in #1014
- feat: connect your own OpenAI-compatible model servers from Settings → Providers by @rsolmano in #1084
- feat: let users choose the interface and code fonts by @danyaberezun in #1092
- chore(tooling): type-check root scripts, cli scripts, and website tests by @Mark-Life in #1063
- chore(e2e): type-check the e2e tree in typecheck:root by @Mark-Life in #1064
New Contributors
- @arhipov-om made their first contribution in #998
Full Changelog: v0.3.0-nightly.11...v0.4.0-nightly.1