diff --git a/README.md b/README.md index fc62bbf..a0b7aaf 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ uv sync --extra dev uv run pytest ``` -## Usage (Phases 0–2) +## Usage (Phases 0–3) ```bash uv run gitmate --help @@ -32,12 +32,16 @@ uv run gitmate config set ignore_globs '*.gen.py,*.tmp' # comma-separated, empt uv run gitmate config set max_context_tokens 8000 # override model context limit uv run gitmate config set reserved_output_tokens 1500 # reserve headroom for model reply uv run gitmate config set template_overhead 600 # reserve headroom for prompt template +uv run gitmate config set cache_dir /path/to/cache # custom prompt cache directory uv run gitmate debug-diff # staged diff: per-file table + cleaned patch uv run gitmate debug-diff --summary # per-file stats table only, no patch text uv run gitmate debug-diff --base main # branch-vs-main diff (PR path) ``` -`commit`, `pr-summary`, `changelog`, and `doc` are stubbed until their phases +Phase 3 introduces the `LLMProvider` abstraction, backed by `GeminiProvider` +(targeting `gemini-3.5-flash-lite` with tenacity exponential backoff retries) +and wrapped by `CachedProvider` (hash-keyed disk caching via `diskcache`). +`commit`, `pr-summary`, `changelog`, and `doc` remain stubbed until their phases land — see `AGENTS.md` and the phased roadmap for details. ## Diagrams @@ -48,6 +52,6 @@ files in the draw.io desktop app to edit): | Diagram | Source | Export | |---|---|---| | System architecture (Phases 0–8, gemini-3.5-flash-lite) | [`docs/architecture.drawio`](docs/architecture.drawio) | [`docs/architecture.png`](docs/architecture.png) | -| Class diagram (Phases 0–2: config, diff extraction, token budgeting) | [`docs/class-diagram.drawio`](docs/class-diagram.drawio) | [`docs/class-diagram.png`](docs/class-diagram.png) | +| Class diagram (Phases 0–3: config, diff extraction, token budgeting, providers & caching) | [`docs/class-diagram.drawio`](docs/class-diagram.drawio) | [`docs/class-diagram.png`](docs/class-diagram.png) | | Use cases (implemented + planned) | [`docs/use-case.drawio`](docs/use-case.drawio) | [`docs/use-case.png`](docs/use-case.png) | | `config` command sequences | [`docs/sequence.drawio`](docs/sequence.drawio) | [`docs/sequence.png`](docs/sequence.png) | diff --git a/docs/class-diagram.drawio b/docs/class-diagram.drawio index 7812b43..c0498e4 100644 --- a/docs/class-diagram.drawio +++ b/docs/class-diagram.drawio @@ -1,16 +1,16 @@ - + - + - + @@ -18,8 +18,8 @@ - - + + @@ -83,8 +83,8 @@ - - + + @@ -122,17 +122,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -181,7 +231,7 @@ - + @@ -193,6 +243,27 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/class-diagram.png b/docs/class-diagram.png index 1ff7799..64a5968 100644 Binary files a/docs/class-diagram.png and b/docs/class-diagram.png differ