diff --git a/.github/workflows/live-smoke.yml b/.github/workflows/live-smoke.yml index 60bef0a..cc71256 100644 --- a/.github/workflows/live-smoke.yml +++ b/.github/workflows/live-smoke.yml @@ -23,8 +23,7 @@ jobs: live-smoke: name: Run live smoke tests runs-on: ubuntu-latest - environment: - name: live-smoke + environment: live-smoke steps: - name: Checkout repository @@ -69,6 +68,7 @@ jobs: AISH_LIVE_SMOKE_MODEL: ${{ secrets.AISH_LIVE_SMOKE_MODEL }} run: | set -euo pipefail + mkdir -p build uv run --group dev python -m pytest tests/live_smoke -v -m live_smoke --run-live-smoke --basetemp build/pytest-live-smoke - name: Upload live smoke diagnostics diff --git a/CHANGELOG.md b/CHANGELOG.md index 13a6969..5c64469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,34 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.2.0] - 2026-04-03 + +### Added + +- Added `aish models usage` so the CLI can show the current model, resolved provider, credential source or auth state, and provider dashboard entry. +- Added `prompt_theme` configuration for reusable shell prompt styles on top of the existing prompt scripting support. +- Added opt-in live smoke coverage for real provider credentials and installed bundle verification before release. + +### Changed + +- Changed the shell architecture from the old `shell.py` plus `shell_enhanced` and `tui` helpers into dedicated `shell/runtime`, `shell/ui`, `shell/pty`, shared `pty`, and `interaction` modules. +- Changed the interactive shell flow to use explicit backend control events and editing phases, improving multiline input, completions, confirmation panels, ask_user dialogs, and recovery after long-running terminal sessions. +- Changed model auth entry so `aish models auth` is the primary command path, while the old `login` path remains as a compatibility alias. + +### Removed + +- Removed the unfinished plan, research, think, and old TUI-oriented code paths from the active shell implementation. + +### Fixed + +- Fixed Ctrl+C handling for AI operations and interactive PTY sessions so control returns to the shell more predictably after interruptions. +- Fixed false error hints for normal SIGPIPE-based pager exits such as quitting `less`. +- Fixed packaged bundle startup by including the bash wrapper assets required by the PTY shell. + +### Security + +- Fixed a history command injection vulnerability in the shell execution path. + ## [0.1.3] - 2026-03-19 ### Added diff --git a/pyproject.toml b/pyproject.toml index 2cd9f29..e9b055a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "aish" -version = "0.1.3" +version = "0.2.0" description = "AI Shell - A shell with built-in LLM capabilities" readme = "README.md" authors = [{ name = "Sian Cao", email = "yinshuiboy@gmail.com" }] diff --git a/src/aish/__init__.py b/src/aish/__init__.py index c3273b3..02251df 100644 --- a/src/aish/__init__.py +++ b/src/aish/__init__.py @@ -1,6 +1,6 @@ from __future__ import annotations -__version__ = "0.1.3" +__version__ = "0.2.0" # Avoid importing heavy modules (and any side-effects) at package import time. # This matters for system services like aish-sandbox, which only need aish.sandboxd. diff --git a/uv.lock b/uv.lock index 79a78ef..024850e 100644 --- a/uv.lock +++ b/uv.lock @@ -146,7 +146,7 @@ wheels = [ [[package]] name = "aish" -version = "0.1.3" +version = "0.2.0" source = { editable = "." } dependencies = [ { name = "anyio" },