What's Changed
- fix(pending): recover requests in nested checkouts the workspace already owns by @pascalandr in #964
- fix(pending): name the cause, folders and sessions in the recovery warning by @pascalandr in #965
- fix(pending): wait out backend compaction deferrals instead of warning by @pascalandr in #966
- fix(chat): give each transcript scroll decision a single owner by @pascalandr in #967
- feat(stats): display service-wide activity statistics by @pascalandr in #968
- fix(workspaces): closing a project tab closes the project in CodeNomad by @pascalandr in #970
- fix(chat): resume follow when a downward gesture reaches a streaming tail by @pascalandr in #969
- refactor(chat): centralize transcript scroll writes and add opt-in tracing by @pascalandr in #971
- fix(chat): keep escaped readers in place when Virtua re-estimates rows by @pascalandr in #974
- refactor(ui): share nested-scroller and height-delta primitives, drop dead scroll state by @pascalandr in #973
- fix(diagnostics): include OpenCode versions and the server's OS release by @pascalandr in #979
- refactor(chat): merge explicit bottom pins and element alignment into existing loops by @pascalandr in #978
- refactor(chat): give transcript navigation a single owner state by @pascalandr in #972
- refactor(chat): give transcript bottom placement a single path by @pascalandr in #976
- perf(chat): persist transcript scroll when it settles; drop dead render notifications by @pascalandr in #977
Full Changelog: v0.20.1-dev-20261015-b4be76c9...v0.20.1-dev-20261016-e41bf940