Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,39 @@ from this file's releases; see CONTRACT.md for the stability policy.

## v0.3.0 — unreleased

### Added
- Permission engine (`permission`): modes `plan|build|edit|yolo|auto`,
per-tool allow/deny/ask rules from `~/.rakit/settings.json` and
`<workspace>/.rakit/settings.json`, per-call decisions, project/session
rules, and typed literal rules like `Bash(git push:*)` / `Edit(src/**)`.
- Hooks (`hooks`): Claude-Code-compatible `hooks.json` (global + workspace)
for `PreToolUse`, `PostToolUse`, `UserPromptSubmit`, `Stop`, `SessionStart`,
`SessionEnd`, `PreCompact`. Exit code 2 blocks with a reason; JSON output
can modify tool input or append context.
- Checkpoints (`checkpoint`): files touched by a mutating batch are snapshotted
(plus a `git stash create` tree) and restorable via `/undo` and
`Engine.UndoLast`.
- Resume journal: interrupted approval/question turns are recovered on startup
and resumable via `/resume` / `Engine.ResumeTurn`; tools are never
re-executed automatically.
- Real plan mode tools `enter_plan_mode` / `exit_plan_mode`; plans are written
to `<workspace>/.rakit/plans/`.
- `ToolSpec` classification metadata (read-only / destructive / approval /
side-effect scope / timeout / max output) is the single source for the
scheduler, permissions and the agent loop.
- LLM retry with jittered exponential backoff for 429/5xx/network errors,
`Retry-After` support, and byte-identical retry bodies.
- New events: `agent:updated`, `agent:usage`, `agent:tool_progress`,
`agent:permission_request`, `agent:subagent_update`, `agent:compaction`,
`agent:turn_resumed`, `agent:plan_update`.
- TUI: `/mode`, `/undo`, `/resume`; approval prompts can be denied with
`esc`/`ctrl+c`; submitting while busy now steers the turn instead of
dropping the draft.

### Changed
- Tool failures are fed back to the model instead of ending the turn; only
repeated consecutive failures stop it.
- Denied tool calls get an error result immediately; asks pause per call.
- Repository consolidation: the legacy crush-architecture port under
`internal/` and `cmd/rakitkode` has been removed. The top-level packages
(`agent`, `harness`, `llm`, `tools`, …) are the single runtime and the
Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@ exactly what they need.
|---|---|
| `engine` | facade: one constructor, `Run`/`RunIn` one-shot turns |
| `agent` | session lifecycle, turn loop, approvals, subagents |
| `harness` | provider-agnostic turn runtime, permissions, scheduling |
| `permission` | collaboration modes, allow/deny/ask rules, per-tool decisions |
| `hooks` | lifecycle hooks (`PreToolUse`, `PostToolUse`, `Stop`, …) |
| `checkpoint` | file snapshots, undo/rewind |
| `harness` | provider-agnostic tool scheduler and metadata |
| `llm` | OpenAI-compatible multi-provider client with streaming |
| `tools` | canonical tool set + registry (read/write/edit/bash/search/…) |
| `mcp` | MCP client manager (stdio + HTTP), tool bridging |
Expand Down
Loading
Loading