You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
--plain linear frontend (#4604): a no-TUI, line-oriented frontend for dumb terminals, screen readers, and restricted SSH sessions — streaming text output, tool-call status lines ([tool] name (ok)/(error)), slash commands (/status, /model, /provider, /lang, /help), i18n, and explicit approval semantics via GGCODE_PLAIN_APPROVE. Opt-in --persist-session appends every message to the session store (write-only by design).
Autopilot behavioral opt-out (#4604): the linear frontend skips goal-collection and end-of-turn strategist injections while keeping the bypass permission surface untouched — a text turn ends the run cleanly.
Large reliability batch across agent guidance, IM adapters, TUI, and config (169 commits since v1.3.268; see Compare).
Fixes and improvements
plain: tool status pairing hardened — the turn boundary is RunStream returning, not per-iteration StreamEventDone, so (ok)/(error) suffixes survive multi-iteration provider streams; ghost results dropped; unterminated lines closed once.
agent: ratchet reactive-rule injection no longer gated on error-marker words (#4605) — marker-free failures like signal: killed and exit status 1 match learned rules again; marker-free error shapes regression-tested.
im: feishu enable via update-loop sentinel with rollback restoring the IM.Enabled family (#4486); adapter fixes across the board.
desktop/wailskit: config sync watcher re-baselines on workspace switch (#4497); MCP/impersonation readers snapshot the active chat bridge (#4381).
tui: memory consolidation findings no longer render as startup notices; assorted UX fixes (13 commits).
config: instance-scope hooks clear is no longer silently lost (#4315/#4382); external-config discipline hardening.
memory: GC forget-digest path honors the tombstone contract (#3880).
Upgrade notes
--plain auto-selects on TERM=dumb (or unset); behavior differences from the TUI (no autopilot injections, approvals default Accept) are documented in docs/guide/plain-mode.md.
--persist-session is opt-in and write-only: auto-resume and the session picker ignore these sessions; use explicit --resume <id> to read one back.