Skip to content

v1.3.70

Choose a tag to compare

@topcheer topcheer released this 12 Jun 09:04
· 6399 commits to main since this release

ggcode v1.3.70

Highlights

  • Desktop message rendering fix: Tool-use rounds now correctly display as separate assistant messages. Previously all LLM iteration text was merged into the first assistant message, making interleaved text invisible.
  • Tmux enhancements: New /tmux actions — logs, stop, rerun, delete_layout, rename_layout — plus automatic layout inference from project files and --setup flag for quick session bootstrapping.
  • Cancel confirmation in TUI: Pressing Ctrl-C or Esc during agent execution now shows a confirmation prompt instead of immediately cancelling, preventing accidental interruption.
  • Tunnel active-session barrier: Mobile reconnect now waits for a barrier ordinal before marking the session ready, preventing partial data display after reconnect.
  • Desktop turn-based streaming: Stream events now carry turn_id, message_id, and seq for precise frontend message matching and incremental rendering.
  • Desktop clipboard attachments: Paste images from clipboard on macOS directly into chat.

Fixes and improvements

  • Fixed desktop assistant message merging across LLM iterations — each tool-use round now gets its own message bubble.
  • Fixed unreachable code in TUI i18n catalogs for the /image command.
  • Added InferDefaultLayout to auto-detect project type (Go, Node, Flutter) and generate tmux pane configurations.
  • Added cancel confirmation state machine — first Ctrl-C shows prompt, second cancels; open panels are closed first.
  • Added active_session barrier fields (barrier_event_id, barrier_ordinal, projection_hash) to tunnel protocol for reliable mobile reconnect.
  • Added ordinal gap detection in mobile connection provider to trigger background reconnect recovery.
  • Added ReadClipboardAttachments for desktop with macOS AppleScript support.
  • Added buildSessionHistoryFromMessages to skip system messages in desktop session history.
  • Added chatStreamState.ts with pure message-state functions extracted from ChatView.
  • Added unit tests for desktop streaming, tunnel broker barrier, agentruntime shared helpers, tmux layout inference, TUI cancel/keyboard, and Windows clipboard.
  • Added Flutter tests for barrier parsing, echo message binding, and shared user message streaming.
  • Extracted shared agentruntime helpers (InteractivePermissionMode, GroupWorkspaceSessions, ApplyProjectMemoryToAgent, etc.) into sessions_shared.go to eliminate duplication across root/daemon/desktop.
  • Improved setSessionState in desktop to unify session switching with IM/tunnel integration binding.
  • Improved shutdown() protection with sync.Once in desktop ChatBridge.
  • Updated Homebrew cask dependency to depends_on macos: :ventura (symbol form).
  • Updated .gitignore for .playwright-mcp/ and *.tsbuildinfo.
  • Updated desktop frontend dependencies (Vite 8, Vitest 4).

Upgrade notes

  • No configuration migration is required.
  • TUI cancel behavior change: agent runs now require two Ctrl-C presses to cancel (first shows prompt, second cancels). Single Ctrl-C still closes open panels.

Compare