Skip to content

v1.3.179

Choose a tag to compare

@topcheer topcheer released this 25 Jul 05:34
· 2230 commits to main since this release

v1.3.179

Release date: 2026-07-25

Summary

Stability and security hardening release: 15 commits fixing nil-pointer panics, goroutine safety, atomic file writes, process group cleanup, screenshot output accuracy, and mobile connection status / event ordering.

New Features

  • Screenshot raw_output_path: New parameter to save the original full-resolution capture alongside the compressed version sent to the LLM

Bug Fixes

  • TUI mobile connection status: RuntimeMobile() and RuntimeStatus() now query tunnelHost.OnlineBroker() directly instead of relying on Model-level tunnelSession fields that can become stale after relay reconnection — aligns TUI with desktop implementation
  • Desktop StartShare nil pointer: Guard against nil chat when StartShare is called before initialization
  • Harness orphan processes: CancelAll now kills the entire process group (SIGKILL to -pid) to prevent orphaned child processes lingering after cancellation
  • Stream manager restart: stopCh is recreated on Start() to allow the stream manager to be restarted after a previous Stop()
  • code_execution plan-mode classification: Reclassified as read-only so it is permitted in plan mode (same as code_execution sandbox)
  • Agent verify command safety: LLM-proposed verify commands now pass through DangerousDetector instead of being executed directly
  • Screenshot output_path accuracy: output_path previously saved the raw screenshot before resize/format conversion — the saved file differed from the image returned to the LLM. Now finalizeImage overwrites the file with the processed image data after all transformations
  • Mobile server_ack ordinal gap: server_ack events early-returned without updating _lastAppliedEventId, causing every subsequent streaming event to trigger false gap-detection recovery

Security

  • Cost file atomic write + path traversal guard: cost.Save now uses atomic write (os.WriteFile → temp+rename) and validates the path to prevent directory traversal
  • MCP disabled servers atomic write: Plugin config file write now uses atomic write to prevent corruption on concurrent access
  • Mobile TunnelCrypto hardening: decryptData guards against malformed ciphertext that could cause panics on truncated/invalid base64 input
  • Goroutine panic safety: Replaced bare go func() / recover() with safego.Go / safego.Recover in browser tool, IM rebind notice, and lanchat UDP ACK sender

Chores

  • Wails v2.13.0: Updated wails bindings and dependency

Compare

v1.3.178...v1.3.179