CHANGELOG.md

# Changelog

## Unreleased

## v0.2.0 (2026-04-06)

### Added

- Session recovery helpers and a shared runtime support layer for examples,
  making resume/list flows consistent with the core-backed session lane.

### Changed

- Gemini streaming, one-shot execution, and session orchestration now run on
  `cli_subprocess_core`, while `gemini_cli_sdk` keeps Gemini-specific command
  shaping and event projection.
- Model normalization, execution-surface handling, and SSH routing now follow
  the shared core contract instead of provider-local fallback logic.
- Runtime ownership and release docs now describe the final Phase 4 boundary:
  `cli_subprocess_core` owns Gemini subprocess lifecycle and built-in transport,
  `gemini_cli_sdk` owns Gemini-specific invocation and projection logic, and
  ASM composition remains common-surface-only with `namespaces: []`.

### Fixed

- Error wrapping and context preservation are more consistent across stream and
  synchronous paths, especially for remote/SSH-backed execution failures.
- Guest-path and nonlocal CWD handling now align with the shared execution
  surface contract.

## v0.1.0 (2026-02-11)

Initial release.

- Streaming execution via `GeminiCliSdk.execute/2` with lazy `Stream.resource/3`
- Synchronous execution via `GeminiCliSdk.run/2`
- Session management: list, resume, delete
- 6 typed event structs: init, message, tool_use, tool_result, error, result
- Full CLI options support: model, yolo, approval_mode, sandbox, extensions, etc.
- Subprocess management via built-in transport with process groups and signal delivery
- Structured error handling with exit code mapping
- OTP application with TaskSupervisor

[Unreleased]: https://github.com/nshkrdotcom/gemini_cli_sdk/compare/v0.2.0...HEAD
[0.2.0]: https://github.com/nshkrdotcom/gemini_cli_sdk/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/nshkrdotcom/gemini_cli_sdk/releases/tag/v0.1.0