What's Changed
- perf(chat): avoid redundant and hidden rendering work (#1915)
- fix: preserve provider history and recover interrupted chat state (#1914)
- fix: skip non-executable CLI discovery candidates (#1910)
- fix(settings): avoid prompt restarts for unchanged text (#1909)
- fix: retain snippet drafts until settings save settles (#1908)
- fix(chat): reopen the active chat view before falling back (#1907)
- fix: defer math exposed by escaped HTML (#1906)
- fix: keep transcript shortcuts out of question inputs (#1905)
- fix: retain keyboard focus when composer info refreshes (#1904)
- fix: name environment snippet form fields (#1903)
- fix(deepseek): preserve failed history completion semantics (#1902)
- fix(claude): retain custom commands with native hidden names (#1901)
- fix(chat): stop keyboard scrolling when the window loses focus (#1900)
- fix(chat): refresh zen status when session errors change (#1899)
- fix(pi): prefer the native Windows home for history (#1898)
- fix: let empty suggestions release editor arrow keys (#1897)
- fix(deepseek): inspect CLI versions through native runtimes (#1896)
- fix(chat): recover queued input after response save failures (#1895)
- fix(chat): apply requested native permission changes (#1894)
- fix(chat): preserve side answer response boundaries (#1893)
- fix(projects): preserve unrelated edits from other windows (#1892)
- fix(opencode): show nonzero V1 Bash exits as failures (#1891)
- fix: limit inline diff matrices to changed lines (#1890)
- fix: activate same-note inline preview references (#1889)
- fix: keep inline suggestions anchored while scrolling (#1888)
- fix(pi): distinguish failed and cancelled compaction outcomes (#1887)
- fix(codex): settle raw native subagent terminal states (#1886)
- fix(settings): retain text drafts across settings reopening (#1885)
- fix(claude): retain rewind backups when restoration fails (#1884)
- fix(chat): hide title retry when generation is disabled (#1883)
- fix: release composer wikilink resources with their chips (#1882)
- fix(codex): retain unphased final subagent reports (#1881)
- fix(storage): recover interrupted title generation for retry (#1880)
- fix(settings): refresh snippet model aliases in every chat pane (#1879)
- fix(chat): hide archived sessions from the resume picker (#1878)
- fix: preserve paragraph breaks when completing mentions (#1877)
- test(opencode): gate coalesced command cancellation replies (#1876)
- fix(claude): surface errors in native success result frames (#1875)
- fix: protect multiline Markdown link destinations (#1874)
- fix(chat): bind canvas selections to their active source (#1873)
- fix(chat): seed side chats from parent session selections (#1872)
- fix: prevent repeated submissions in skill editors (#1871)
- fix(pi): preserve extension notification warning severity (#1869)
- fix: honor native pane intent for file link clicks (#1868)
- fix(claude): resolve native history for long vault paths (#1867)
- fix(skills): preserve instruction Markdown indentation (#1866)
- fix(chat): retain newer drafts after conversation creation fails (#1865)
- fix(chat): preserve raw drafts during detached recovery (#1864)
- fix(codex): deduplicate message fallback after tool work (#1863)
- fix: name Pi extension dialogs through the native modal title (#1861)
- fix: restore model selection controls after rejected saves (#1860)
- fix(skills): roll back failed Sync command conversions (#1859)
- feat: live drag sorting for enabled models (#1912)
- ci: run CI for every push to main instead of cancelling (#1870)
Full Changelog: 2.3.34...2.3.35