Ship the batch: undo, parallel subagents, lazy MCP, hot-reloaded skills; docs and CI/CD
Loop and ergonomics batch across Now/Next and Maintenance:
- /undo and /redo via pre-prompt file snapshots (snapshot.ts)
- task takes a tasks[] array and runs investigations concurrently (subagent.ts)
- lazy MCP tools: mcp_list/mcp_inspect/mcp_call meta-tools, eager opt-in (mcp.ts, config.ts)
- skill tool reads its list live so a mid-session install is callable next turn (skills.ts)
- tool-name lists (tool-kinds.ts) derived from a mutating() marker; gates previously ungated writes
- prune/session recovery path summarized, and step-back doom-loop primitive (step-back.ts)
- @file completion re-walks on a slow cooldown; estimateTokens and pricing labeled as estimates
Docs: README, CHANGELOG, docs/{mcp,architecture,development} updated to match.
CI/CD: bun install-store cache and concurrency gates on both workflows; release.yml now
composes file-based release notes via scripts/make-release-notes.ts and verifies every binary.
This commit is contained in:
1 parent
ffa9a02c26
commit
f8c3cc2d8e
57 files changed
+3808
-573
No files matched your search
@@ -4,6 +4,38 @@ All notable changes to this project are documented here. The format follows
|
||||
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to
|
||||
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
A batch of loop and ergonomics work landed after 1.0.0. Version remains `1.0.0` in
|
||||
`src/version.ts`; these are folded into the next tagged release.
|
||||
|
||||
### Added
|
||||
|
||||
- **`/undo` and `/redo`.** Every prompt snapshots the files on disk first (capped near the last
|
||||
100), and `/undo` restores files, trims the conversation, or both. `/redo` reverses it. A
|
||||
`bash` command's side effects are not files and cannot be rolled back, which is stated in the
|
||||
command output rather than hidden.
|
||||
- **Parallel subagents.** The `task` tool accepts several independent investigations under a
|
||||
`tasks` array and runs them on separate context windows at the same time, joining their
|
||||
reports. A single call behaves exactly as before.
|
||||
- **Lazy MCP tools.** By default an MCP server now contributes three meta-tools (`mcp_list`,
|
||||
`mcp_inspect`, `mcp_call`) instead of one schema per server tool, so a server exposing twenty
|
||||
tools stops costing ~2750 tokens per request until one is actually called. Set
|
||||
`"mcpMode": "eager"` to register every server tool up front. Named servers are still listed
|
||||
in the prompt, and calls route through the same permission rules and guard as before.
|
||||
- **Hot-reloaded skill installs.** A skill installed from `/registry` mid-session is callable
|
||||
on the next turn without a restart (the `skill` tool reads its list live, so even the first
|
||||
install works). Plugins and external tools still need a restart because they join the guard
|
||||
chain and tool registry built once at boot.
|
||||
|
||||
### Fixed
|
||||
|
||||
- The walk behind `@file` completion refreshed only once per session; it now re-walks on a slow
|
||||
cooldown so a file created after the first `@` shows up within a short window.
|
||||
- A handful of plugin write tools were mutating but not gated by the permission defaults; the
|
||||
tool set and the mutating list are now derived from a single `mutating()` marker, so a tool
|
||||
can no longer be added to one and forgotten in the other.
|
||||
|
||||
## [1.0.0]
|
||||
|
||||
The first stable release. Cost control, a larger tool and skill surface, custom slash
|
||||
|
||||
Reference in new issue
Block a user