You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* chore(release): bump version to 0.17.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: update VitePress site for v0.17.0 changes
- Rename working_dir → repo_root across configuration and data model docs
- Update driver references: "CLI driver" → "claude/codex drivers" throughout
- Fix Profile table in data-model.md to match actual fields (agents, sandbox, plan_path_pattern)
- Fix TrackerType "none" → "noop" to match code
- Add plan validation feedback loop to overview and roadmap
- Add ask_user_question interactive cards to roadmap
- Fix "YAML profiles" → "database-backed profiles" in landing page
- Add codex driver to troubleshooting credentials table
- Update copyright year to 2024-2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+19-3Lines changed: 19 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,9 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.17.0] - 2026-02-22
11
+
12
+
### Added
13
+
14
+
-**pipeline:** Add plan validation feedback loop that automatically re-validates plans after architect revisions ([#493](https://github.com/existential-birds/amelia/pull/493))
15
+
-**brainstorm:** Render `ask_user_question` tool calls as interactive cards in the dashboard ([#489](https://github.com/existential-birds/amelia/pull/489))
16
+
-**drivers:** Add `CodexCliDriver` for OpenAI Codex CLI integration with subprocess-based NDJSON streaming ([#477](https://github.com/existential-birds/amelia/pull/477))
17
+
10
18
### Changed
11
19
12
-
-**Breaking:** Replace legacy `cli` driver with explicit `claude` and `codex` drivers ([#473](https://github.com/existential-birds/amelia/issues/473))
20
+
-**Breaking:** Replace legacy `cli` driver with explicit `claude` and `codex` drivers ([#477](https://github.com/existential-birds/amelia/pull/477))
13
21
14
22
The generic `driver: "cli"` value has been split into explicit driver keys:
15
23
-`claude` — wraps the Claude CLI binary
@@ -18,9 +26,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
18
26
19
27
**Migration:** Update all profiles that use `driver: "cli"` to `driver: "claude"`. Legacy `cli` values are now rejected at startup. Recreate profiles with `amelia config profile create <name> --driver claude`.
20
28
21
-
### Added
29
+
-**Breaking:** Rename `Profile.working_dir` to `Profile.repo_root` for clarity ([#479](https://github.com/existential-birds/amelia/pull/479))
30
+
31
+
**Migration:** Update any code or configuration referencing `working_dir` to use `repo_root` instead. A database migration handles the column rename automatically.
32
+
33
+
### Fixed
22
34
23
-
-**drivers:** Add `CodexCliDriver` for OpenAI Codex CLI integration with subprocess-based NDJSON streaming
35
+
-**architect:** Remove git commit step from plan template that caused unnecessary commit attempts during planning ([#494](https://github.com/existential-birds/amelia/pull/494))
36
+
-**logging:** Replace todo table with styled Rich Panel widget to fix rendering issues ([#492](https://github.com/existential-birds/amelia/pull/492))
37
+
-**dashboard:** Auto-focus input field when agent finishes responding for smoother interaction ([#491](https://github.com/existential-birds/amelia/pull/491))
38
+
-**drivers:** Handle `rate_limit_event` and unknown SDK message types gracefully instead of crashing ([#475](https://github.com/existential-birds/amelia/pull/475))
39
+
-**drivers:** Improve SDK stream handling robustness for edge cases ([#483](https://github.com/existential-birds/amelia/pull/483))
Copy file name to clipboardExpand all lines: docs/site/.vitepress/config.ts
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ export default defineConfig({
95
95
// Footer
96
96
footer: {
97
97
message: 'Built by hey-amelia bot. Released under the <a href="https://github.com/existential-birds/amelia/blob/main/LICENSE">Apache License 2.0</a>.',
Copy file name to clipboardExpand all lines: docs/site/.vitepress/theme/components/CapabilitiesAndResearch.vue
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ const items = [
26
26
{ capability: 'Swap drivers per agent', detail: 'Choose Claude Code CLI or API SDK per role. Implements SWE-agent\'s agent-computer interface principle.' },
27
27
{ capability: 'Resume from checkpoints', detail: 'Pick up failed workflows where they stopped. Uses Context Folding branch/return primitives.' },
28
28
{ capability: 'One model per role', detail: 'Assign different LLMs to Architect, Developer, and Reviewer. ReAct-style reasoning and acting per agent.' },
29
-
{ capability: 'Configure via YAML profiles', detail: 'Prompts, tools, models, and context per profile. Stateless, immutable, append-only state design.' },
29
+
{ capability: 'Configure via profiles', detail: 'Prompts, tools, models, and context per profile. Database-backed, immutable, append-only state design.' },
30
30
{ capability: 'Generate specs from issues', detail: 'Spec Builder turns GitHub/Linear issues into structured implementation plans.' },
31
31
{ capability: 'Watch it run in real time', detail: 'WebSocket-powered React dashboard shows agent progress as it happens.' },
Copy file name to clipboardExpand all lines: docs/site/architecture/concepts.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -183,7 +183,7 @@ Developer marks execution complete
183
183
184
184
### Unified Streaming with StreamEvent
185
185
186
-
Amelia uses a unified `StreamEvent` type for real-time streaming across all drivers. Regardless of whether you use the API driveror CLI driver, tool execution progress is communicated through the same event format.
186
+
Amelia uses a unified `StreamEvent` type for real-time streaming across all drivers. Regardless of whether you use the API driver, Claude driver, or Codex driver, tool execution progress is communicated through the same event format.
187
187
188
188
**StreamEventType** (the event categories):
189
189
@@ -209,7 +209,7 @@ Amelia uses a unified `StreamEvent` type for real-time streaming across all driv
209
209
Each driver converts its native message types to `StreamEvent`:
210
210
211
211
```python
212
-
# CLI driver converts SDK messages via convert_to_stream_event()
212
+
#Claude CLI driver converts SDK messages via convert_to_stream_event()
# The UI and logging systems consume StreamEvent uniformly
@@ -222,7 +222,7 @@ This abstraction allows the dashboard and logging systems to display real-time p
222
222
223
223
Drivers abstract how Amelia communicates with LLMs. This separation enables flexibility across different environments.
224
224
225
-
### Why Two Drivers?
225
+
### Why Multiple Drivers?
226
226
227
227
| Driver | Use Case | Requirements |
228
228
|--------|----------|--------------|
@@ -232,7 +232,7 @@ Drivers abstract how Amelia communicates with LLMs. This separation enables flex
232
232
233
233
### Driver Interface
234
234
235
-
Both drivers implement a simple prompt-based interface:
235
+
All drivers implement a simple prompt-based interface:
236
236
237
237
```python
238
238
classDriverInterface(Protocol):
@@ -257,7 +257,7 @@ class DriverInterface(Protocol):
257
257
258
258
### Why This Matters
259
259
260
-
Some environments prohibit direct API calls due to data retention policies. The CLI driver wraps existing approved tools (like `claude`CLI) that:
260
+
Some environments prohibit direct API calls due to data retention policies. The CLI drivers wrap existing approved tools (`claude`and `codex` CLIs) that:
@@ -240,7 +239,8 @@ class StreamEventType(StrEnum):
240
239
Unified real-time streaming event from agent execution. This is the common message format across all drivers (CLI and API), enabling consistent UI rendering and logging regardless of the underlying LLM driver.
241
240
242
241
Drivers convert their native message types to `StreamEvent` using conversion functions:
243
-
- CLI driver: `convert_to_stream_event()` in `amelia/drivers/cli/claude.py`
242
+
- Claude CLI driver: `convert_to_stream_event()` in `amelia/drivers/cli/claude.py`
243
+
- Codex CLI driver: Conversion in `amelia/drivers/cli/codex.py`
244
244
- API driver: Similar conversion in the API driver implementation
Copy file name to clipboardExpand all lines: docs/site/architecture/overview.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Technical deep dive into Amelia's architecture, components, and data flow.
9
9
10
10
## What Amelia Does Today
11
11
12
-
**Phase 1 (Complete):** Multi-agent orchestration with the **Architect -> Developer -> Reviewer** loop. Issues flow through planning, execution, and review stages with human approval gates before any code ships. Supports both API-based (DeepAgents/LangChain) and CLI-based (Claude) LLM drivers, with Jira and GitHub issue tracker integrations.
12
+
**Phase 1 (Complete):** Multi-agent orchestration with the **Architect -> Developer -> Reviewer** loop. Issues flow through planning, execution, and review stages with human approval gates before any code ships. Supports both API-based (DeepAgents/LangChain) and CLI-based (Claude, Codex) LLM drivers, with Jira and GitHub issue tracker integrations.
@@ -96,7 +96,7 @@ See [`amelia/pipelines/implementation/nodes.py`](https://github.com/existential-
96
96
97
97
**Node: `call_architect_node`** - Gets driver, calls `Architect.plan()` to generate markdown plan with goal extraction, updates state with plan content.
98
98
99
-
**Node: `plan_validator_node`** - Validates plan file and extracts structured fields (goal, plan_markdown, key_files) using lightweight LLM extraction.
99
+
**Node: `plan_validator_node`** - Validates plan file and extracts structured fields (goal, plan_markdown, key_files) using lightweight LLM extraction. Runs in a feedback loop: if validation fails, the Architect revises the plan and re-validation occurs automatically.
100
100
101
101
**Node: `human_approval_node`** - In server mode: emits `APPROVAL_REQUIRED` event and uses LangGraph interrupt to block. In CLI mode: prompts user directly via typer.
102
102
@@ -108,7 +108,7 @@ See [`amelia/pipelines/implementation/nodes.py`](https://github.com/existential-
108
108
109
109
### Why the Driver Abstraction?
110
110
111
-
Some environments prohibit direct API calls due to data retention policies. The CLI driver wraps existing approved tools (like `claude`CLI) that inherit SSO authentication and comply with policies. Users can switch between API (fast prototyping) and CLI (policy compliance) without code changes.
111
+
Some environments prohibit direct API calls due to data retention policies. The CLI drivers wrap existing approved tools (`claude`and `codex` CLIs) that inherit SSO authentication and comply with policies. Users can switch between API (fast prototyping) and CLI (policy compliance) without code changes.
112
112
113
113
### Why Separate Agents Instead of One Big Prompt?
For CLI drivers, model is optional but helps with clarity.
97
+
For `claude` and `codex` drivers, model is optional but helps with clarity.
98
98
99
99
### Tracker
100
100
@@ -106,9 +106,9 @@ Where Amelia fetches issue details from.
106
106
|`jira`| Jira issues |`JIRA_BASE_URL`, `JIRA_EMAIL`, `JIRA_API_TOKEN` env vars |
107
107
|`none`| No tracker | None (use `--task` for ad-hoc tasks) |
108
108
109
-
### Working Directory
109
+
### Repository Root
110
110
111
-
The directory where agents execute. When set, the Developer agent operates from this path.
111
+
The root directory of the repository this profile targets. When set, the Developer agent operates from this path.
112
112
113
113
Default: Current working directory where commands are run.
114
114
@@ -126,7 +126,7 @@ Default: `false`
126
126
127
127
## Per-Agent Configuration
128
128
129
-
Each profile can configure individual agents with different drivers and models. This allows mixing CLI and API drivers within a single profile, or using different models for different agents.
129
+
Each profile can configure individual agents with different drivers and models. This allows mixing `claude`, `codex`, and `api` drivers within a single profile, or using different models for different agents.
130
130
131
131
View agent configurations:
132
132
@@ -230,8 +230,8 @@ The dashboard provides a visual interface for managing configuration at `/settin
230
230
231
231
### Profiles Tab
232
232
233
-
- View all profiles as cards showing driver, agents, and working directory
234
-
- Filter profiles by CLI or API driver type
233
+
- View all profiles as cards showing driver, agents, and repository root
234
+
- Filter profiles by driver type (`claude`, `codex`, or `api`)
235
235
- Create new profiles with the "+ Create Profile" button
0 commit comments