Skip to content

v0.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Jul 00:36
· 769 commits to main since this release

Added

  • Windows compatibility — cross-platform fixes so the package installs and runs on Windows:
    • Machine profile auto-detection: detect_machine_profile() reads the AI_HOST env var
      (falls back to socket.gethostname()) and maps sys.platform to a human-readable
      os_type ("windows", "macos", "linux"). ensure_machine_profile_registered()
      writes host_id and os_type to config.toml on first load_config() call — no
      manual config edit needed on first run.
    • Cross-platform root check: replaced os.getuid() == 0 with _is_root() helper
      (ctypes.windll.shell32.IsUserAnAdmin() on Windows, os.getuid() on POSIX).
    • Replaced POSIX find/rm pycache cleanup with Path.rglob("__pycache__") +
      shutil.rmtree.
    • is_cc_active_locally() uses psutil.process_iter() on Windows instead of pgrep.
    • Remote SSH transport (os.execvp("zsh", ...)) exits with a clear error message on
      Windows rather than crashing.
    • DEFAULT_CONFIG written with encoding="utf-8" (fixes UnicodeEncodeError on
      Windows CP1252 locales when the config contains non-ASCII characters).

Fixed

  • iTerm2 pane-header drift on session re-attach (AI-CLI-59, final). The pane is
    now renamed by resolving the tmux session's live client tty at set-name time
    (tmux list-clients → tty → iTerm2 session with that tty), instead of a stored
    ITERM_SESSION_ID GUID. tty is 1:1 with a physical pane, so cross-session
    clobbering (two tmux sessions sharing one pane GUID) is now impossible. Removed
    the racy dual-GUID tracking: deleted _evict_iterm2_guid and
    _get_current_iterm_session_id, and the ITERM_SESSION_ID env-propagation from
    the launch/re-attach path. Panes display the engine-prefixed session id
    (c-sw-3 for Claude, g-… for Gemini/agy) so sessions stay visually
    distinguishable by engine.

Removed

  • ai gemini command and the underlying gemini.py / research.py modules deleted.
    Migration: use a Gemini CLI tool directly for research queries.
  • Contract tests for GeminiResult, AttemptLog, and run_gemini() in test_public_api.py
    removed (symbols no longer exist).

Changed

  • ai spend gemini help text updated to clarify it reads historical local JSONL logs only.