github tiann/hapi v0.31.2
Release v0.31.2

2 hours ago

What's Changed

  • fix(web): persist AskUserQuestion draft answers across session switches by @IanMStevenson in #1853
  • fix(web): filter unread badge count through sidebar eligibility by @IanMStevenson in #1850
  • fix(cli,hub): finalize canceled permission requests and surface stale answers by @IanMStevenson in #1854
  • fix(grok): preserve ACP text delta chunks by @Aqi77su in #1860
  • test(ios): stabilize QuestionCard viewport assertions by @techotaku39 in #1865
  • docs(guide): document HAPI Markdown math delimiters by @techotaku39 in #1862
  • test(ios): assert Scratchlist preview visibility after focus by @techotaku39 in #1861
  • perf(hub): cache prepared statements and memoize per-socket session access by @miuiadmin in #1851
  • fix(web): refresh cached session tails with a small page by @techotaku39 in #1847
  • fix(hub): keepalive-only sessions reconcile to an idle lifecycle (#1820) by @heavygee in #1821
  • fix(cursor): pin Auto to CLI --model auto instead of account default by @swear01 in #1819
  • feat(web): auto-hide primary session scrollbars by @techotaku39 in #1730
  • feat(web): setting to open external links in a new tab by @IanMStevenson in #1884
  • fix(web): save composer draft on visibilitychange, not only on unmount by @IanMStevenson in #1883
  • fix(web): synchronize assistant runtime and history loading by @swear01 in #1893
  • fix(kimi): discover configured models dynamically by @MiroVanDyro in #1873
  • fix(cli): change_title updates metadata.name for visible renames by @heavygee in #1896
  • fix(codex): reject history sync for active sessions by @tiborsekera in #1895
  • feat(web): dictate keyboard shortcut (Ctrl/Cmd+Shift+D) by @heavygee in #1902
  • fix(runner,hub): cross-platform orphan reap on archive / tracking loss by @heavygee in #1911
  • test(ios): make SessionSplit width assertion responsive by @techotaku39 in #1907
  • Add 130% app font size by @rapind in #1975
  • feat(ios): add Russian locale by @mrudybtw in #1964
  • fix(web): render Codex goal responses as cards by @junmo-kim in #1954
  • feat(web): add Russian locale and detect initial language by @mrudybtw in #1958
  • feat(android): add Russian locale by @mrudybtw in #1963
  • feat(web): Enlarge button for dictation and text submission (#2006) by @heavygee in #2007
  • fix(cli): stamp and reap orphan HAPI MCP bridge helpers by @heavygee in #2004
  • fix(cli): strip agent-context env from web Terminal PTYs by @heavygee in #2014
  • fix(codex): announce automatic context compaction when it starts by @junmo-kim in #1999
  • fix(voice): configurable ElevenLabs max conversation duration by @heavygee in #2017
  • fix(web): 48px session search clear with calendar left of it by @heavygee in #2034
  • fix(web): shed session toolbar icons by keep rank instead of overlapping by @heavygee in #2040
  • fix(codex): keep status summaries out of intermediate messages by @techotaku39 in #2041
  • feat(opencode): support OpenCode v2 alongside v1 sessions by @junmo-kim in #2042
  • fix(web): remove composer attachments without waiting for cleanup by @techotaku39 in #2128
  • fix(web): stop composer image previews from dragging after release by @techotaku39 in #2124
  • feat(android): settled permission verdict details by @miuiadmin in #2123
  • feat(android): persistent permission-mode chip + inactive gating by @miuiadmin in #2125
  • perf(hub): cached settings reads (SWR + single-flight) for hot paths by @miuiadmin in #2122
  • fix(codex): distinguish compaction waits from unknown delivery by @techotaku39 in #2115
  • fix: show Claude sessions waiting on background tasks (#2100) by @swear01 in #2102
  • fix(web): ignore pending requests on archived sessions in the sidebar by @swear01 in #2101
  • fix(web): load one older page when the cold tail is tool-only by @swear01 in #2098
  • fix(web): give the rich composer its own undo history by @swear01 in #2097
  • feat(cli): add hapi set-mode to change a session's permission mode (#2094) by @swear01 in #2095
  • fix(cli): forward Claude Code 2.x subagent transcripts in local mode (#1904) by @swear01 in #2091
  • feat(codex): expose Approve for me as a permission mode (#2016) by @swear01 in #2090
  • fix(hub): judge liveness by hub receive time, not runner clock (#1986) by @swear01 in #2089
  • fix(claude): seed local-mode context window from the configured model (#1858) by @swear01 in #2088
  • fix(cli): forward Claude API error records with null service_tier (#1857) by @swear01 in #2087
  • fix(runner): preserve slow Codex sessions across startup deadlines by @techotaku39 in #2078
  • fix(web): contain transient scrollbar overflow during resize by @techotaku39 in #2077
  • fix(web): preserve composer image previews across updates by @techotaku39 in #2070
  • fix(hub): mint a localId for user messages sent without one by @swear01 in #2069
  • fix(runner): add webhook timeout configuration hint by @HuangYincan in #2066
  • fix(web): explain redirected hub requests instead of "Failed to fetch" by @junmo-kim in #2065
  • feat(pi): display inline tool-result images by @swear01 in #2060
  • feat(cli): HAPI_DISABLE_PEER_TOOLS — hide peer-session tools from wrapped agents by @miuiadmin in #2052
  • fix(hub): single-flight cache for session enumeration RPCs by @miuiadmin in #2032
  • fix(dsh): default ACP entrypoint to the official dsh CLI by @miuiadmin in #2031
  • feat(dsh): model selection for DeepSeek Harness (ACP config options) by @miuiadmin in #2030
  • perf(web): stop hidden and unchanged sidebar rows from re-rendering by @swear01 in #2165
  • fix(claude): keep remote permission downgrades effective by @swear01 in #2158
  • fix(claude): pass the session permission mode to the local TUI by @swear01 in #2159
  • fix(cli): replay the latest runtime heartbeat on connect by @swear01 in #2054
  • fix(codex): persist Round duration across session reloads by @swear01 in #2025
  • fix(web): contain image preview labels to prevent chat layout shifts by @techotaku39 in #2116
  • feat(web): fixed session order display setting by @miuiadmin in #2033
  • feat(web): To agent control for terminal scrollback or selection into composer by @heavygee in #2012
  • feat(android): session-list sidebar parity — dedup, stub hiding, relevance search by @miuiadmin in #2104
  • feat(android): permission input semantics parity (editor inputType, URL confirm, grok auto gate) by @miuiadmin in #2127
  • feat(android): remember new-session launch defaults per machine and agent by @miuiadmin in #2138
  • feat(android): add scratchlist row move, copy, and delete-confirm actions by @miuiadmin in #2132
  • fix(codex): allow larger histories over shared WebSockets by @Nicholasjl in #2171
  • feat(android): session list date-range filter with activity-aware picker by @miuiadmin in #2141

New Contributors

Full Changelog: v0.30.6...v0.31.2

Don't miss a new hapi release

NewReleases is sending notifications on new releases.