Skip to content

v1.3.269

Choose a tag to compare

@topcheer topcheer released this 30 Oct 09:53
· 494 commits to main since this release

ggcode v1.3.269

Highlights

  • --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.

Compare