What's Changed
- fix(pi): refresh context after compaction by @swear01 in #1634
- fix(pi): offer model-accurate thinking levels in the create-session form by @KorenKrita in #1626
- feat(codex): mid-turn Steer via app-server turn/steer (#888) by @swear01 in #1606
- feat(cursor): mid-turn Steer via concurrent ACP session/prompt (#888) by @swear01 in #1609
- fix(web): unify message action button styling by @swear01 in #1645
- fix(opencode): keep one stored message per reasoning stream by @junmo-kim in #1643
- feat(web,hub): make large conversation export warning-only by @swear01 in #1648
- feat(web): anchor the composer settings sheet to the clicked value button by @KorenKrita in #1627
- fix(cli): preserve source extensions for generated media downloads by @techotaku39 in #1650
- feat(web): add mark unread session action by @techotaku39 in #1649
- docs(macOS): set launchd runner file limit by @swear01 in #1646
- ci: pin codex-action to v1.11 by @junmo-kim in #1667
- feat(web): show Claude round usage metadata by @junmo-kim in #1655
- feat(dsh): integrate DeepSeek Harness through ACP by @swear01 in #1632
- ci: drop the codex-home config seed that breaks TOML parsing by @junmo-kim in #1670
- feat(web): support composer attachment drag reordering by @techotaku39 in #1682
- fix(agy): show Gemini 3.7 Flash in the agy model list by @junmo-kim in #1585
- test(cli): stub the Claude binary so the runner integration suite passes without a local Claude install by @junmo-kim in #1696
- perf(hub): stop heartbeat replay from scanning session history by @ZJUFangzh in #1745
- fix(codex): ignore late app-server writes during disconnect by @hu9029 in #1748
- fix(codex): fail closed on ambiguous Web Rewind boundaries by @techotaku39 in #1707
- fix(hub): keep ambiguous queued-message cancels indeterminate by @welfvh in #1750
- fix(cli): identify the Windows runner process through CIM by @junmo-kim in #1755
- fix(claude): accept first fork child prompt on SessionStart:fork hook by @junmo-kim in #1671
- fix(codex): preserve context config in remote sessions by @NightWatcher314 in #1633
- fix(web): keep streamed reasoning/text block ids stable across snapshot rows by @HongChenGG in #1741
- fix(acp): preserve permission state when tool input is missing by @swear01 in #1782
- fix(hub): seed forked session summaries by @techotaku39 in #1777
- fix(web): preserve sidebar viewport across pin updates by @swear01 in #1776
- fix(web): center inactive session notice text by @techotaku39 in #1770
- docs: explain execution-host sleep in remote sessions by @matyasrathonyi in #1774
- fix(web): preserve the visible chat window during rewind by @techotaku39 in #1766
- fix(web): clarify session summary setting copy by @techotaku39 in #1760
- fix(web): compact recent path labels by @techotaku39 in #1757
- fix(web): remember file browser tab preference by @techotaku39 in #1761
- fix(web): let the installed Android status bar follow the system by @junmo-kim in #1742
- feat(web): add word wrap to file source previews by @techotaku39 in #1754
- feat(codex): support user-configured MCP servers in remote sessions by @techotaku39 in #1789
- feat(codex): support backend-authorized Luna Reserve fallback by @swear01 in #1780
- feat(web): add bulk mark-all-read session action by @techotaku39 in #1773
- feat(web): add opt-in PWA taskbar unread badge by @techotaku39 in #1759
- feat(web,ios,android): let Claude pick a permission mode when creating a session by @junmo-kim in #1751
- feat(pi): auto-title Pi sessions via bundled hapi_change_title extension by @HongChenGG in #1719
- fix(opencode): expose model-specific reasoning effort options by @junmo-kim in #1716
- feat(web): add scroll-to-bottom button by @techotaku39 in #1694
- fix(web): show Codex round usage metadata by @techotaku39 in #1685
New Contributors
- @ZJUFangzh made their first contribution in #1745
- @hu9029 made their first contribution in #1748
- @welfvh made their first contribution in #1750
- @HongChenGG made their first contribution in #1741
- @matyasrathonyi made their first contribution in #1774
Full Changelog: v0.28.0...v0.29.1