Releases: yologdev/yoyo-evolve
Release list
v0.1.15
The catch-up release: Days 87–132, the largest span yet. The headline is the fix for the stop-and-restart friction reported in #389 — auto-continue now consults the provider's own follow-up queue (yoagent 0.9) instead of guessing from response text, so multi-step plans keep moving without manual "continue" prompts. Around it: /spawn grows into a real orchestrator (parallel fan-out, background jobs, rerunnable manifests, worktree handoff with optional draft PRs), a full risk-proprioception subsystem lands (/risk snapshot / validate / accuracy / effectiveness), web_search is rebuilt on the Exa API, yoagent 0.9 brings adaptive thinking and fleet-model pricing (Opus 4.8, Fable 5), and the REPL learns ! shell passthrough, /cd, and /rewind.
Added
- Auto-continue via follow-up queue — when the model stops with queued work remaining, yoyo continues automatically using yoagent 0.9's
follow_up_queue_len()as an authoritative signal, falling back to the text heuristic; pending count surfaces in/status(Days 128, 131) /spawn --parallel— fan out multiple subagent tasks concurrently (max 10), each recorded as a rerunnable JSON manifest;/spawn manifestinspects past fan-outs (Days 125–131)/spawn --bg+ completion notifications — background subagent jobs announce when done; collect results with/spawn collect(Day 128)- Spawn worktree handoff — workers commit to their worktree branch and report a ready-to-review branch + diffstat; opt-in
--prpushes the branch and opens a draft PR (Days 125–126) - Risk subsystem — per-file risk scoring from git-history signals:
yoyo riskCLI subcommand,/risk validateagainst actual breakage, prediction-accuracy tracking in/status,/risk effectiveness(Days 108–130) web_searchrebuilt on Exa — replaces the broken DDG scraper; selective deep search for synthesis queries (Days 113, 119)!shell passthrough — run a command directly from the REPL with zero tokens;!?feeds the last failed command's output into the conversation (Days 126–127)/cd— change working directory with~and relative-path support (Day 127)/rewind+ auto-stash on/clear—/clearstashes the outgoing conversation;/rewindrestores it (Day 126)notify_commandconfig — run a user command when a long prompt finishes (opt-in) (Day 126)- New providers — GitHub Models and GitHub Copilot join the provider list (Day 124)
- Sub-agent upgrades — sub-agents inherit skills and can nest one level deep with a hard depth cap (Days 113, 130)
set -o pipefailin the bash tool — mid-pipeline failures surface instead of being masked, with a SIGPIPE-141 guard so… | headidioms don't spuriously fail (Day 131)- Sectioned system prompt — restructured into named behavioral defaults: evidence and honesty, search craft, change discipline, bounded verification (Day 131)
Improved
- yoagent 0.9 migration — adaptive thinking support,
StopReason::Refusalhandling with retreat-size retry, fleet-model pricing (Opus 4.8 / Fable 5 / Sonnet 5) read live from presets (Day 127) - Setup wizard stops clobbering config — existing
.yoyo.tomlis backed up and unmanaged keys preserved (Day 125) - Auto-context quality — snake_case/camelCase keyword decomposition and repo-map signatures wired into context injection (Day 116)
- Safety hardening — detects
rm -rf/cptargeting critical system dirs, firewall-flush case variants,chmod 777; fewer heap allocations in command analysis (Days 102–124) - Architect editor model is explicit — the silent auto-downgrade map is gone; the editor model is configured, not guessed (Days 124–125)
Fixed
- Reverse-shell false positives —
rsync -c/sync; echo -eno longer trip the netcat detector (word-boundary matching) (Day 131) - Anthropic
--base-urldouble-/v1— guarded after the yoagent 0.9 preset change, with regression tests (Day 127) - Risk-score truncation —
compute_file_risk_scoresreturns all files, not just 15 (Day 112) - Flaky CI tests — hermetic fixture-repo git helpers, stabilized risk-score sort, env-var race conditions in test suites (Days 110–125)
- UTF-8 char-boundary panics — remaining inline truncation loops replaced with
safe_truncate/safe_byte_index(Days 101–102)
v0.1.11
20 sessions spanning Days 64–74. Prompt caching cuts repeated system prompt costs ~90%, native desktop notifications tell you when long completions finish, clipboard integration via /copy, smarter auto-continue for incomplete responses, error-aware /run, and a deep consolidation arc that deduplicated 13-way token arithmetic, extracted 6+ modules, and cleaned every re-export middleman out of prompt.rs.
Added
/revisitcommand — scan closed/shelved GitHub issues, check feasibility, and track revisit candidates in.yoyo/revisit.json(Day 74)- Error-aware
/run— when a command fails, shows a colored failure preview and offers to analyze the error with the agent (Day 73) /doctorfor Java, Ruby, C/C++ projects — expanded project health checks beyond Rust/Python/Node (Day 73)- Output tokens/sec in usage line and
/profile— shows generation speed alongside token counts (Day 73) - Colored diff preview for
write_file— when overwriting an existing file, shows a colored unified diff of the changes (Day 73) - Prompt caching via yoagent's CacheConfig — automatic
cache_controlon system prompt and long tool results, ~90% cost reduction on repeated system prompts; cache hit rate visible in/costand/tokens(Day 71) - Native desktop notifications — OS-level notification + terminal bell when completions take >10s; configurable via
notify = falsein config (Day 71) /copycommand — clipboard integration detectingpbcopy/xclip/wl-copy/clip.exe; subcommands:/copy last,/copy code,/copy all(Day 71)/changes summarysubcommand — AI-generated overview of files modified in the current session and why (Day 70)/model listcommand — browse all known models grouped by provider, with context window sizes (Day 64)- Model registry updated — added GPT-5, GPT-5-mini, GPT-5.5, Grok-4, Grok-4-mini, Gemini 2.5 Flash Lite to provider registry and pricing (Days 64, 70)
Improved
- Auto-continue heuristic strengthened — detects unclosed code fences, numbered lists, and "let me" phrases as incomplete responses; max auto-continues bumped from 3 to 5 (Day 73)
- Tool recovery with concrete alternative suggestions — retry prompts now suggest specific alternative tools when one fails (e.g.
edit_filefailing → suggestswrite_file), improving agent self-recovery (Day 70) - Banner shows project context at startup —
📁 Rust project (yoyo-evolve) on mainwith auto-detected project type, name, and branch (Day 64) /evolutioncommand — shows CI run status, session stats, and recent evolution history (Day 68)- Competitive gap analysis refreshed — updated scorecard against Claude Code, Cursor, Gemini CLI, Codex, and Aider; identified phase transition from missing features to architectural divergences (Day 67)
Fixed
- Silent
.ok()error swallowing in piped mode and retry path — errors now properly propagated instead of silently discarded (Day 68) - Silent data loss in
save_messages— messages no longer silently dropped across provider/model/thinking switches (Day 70)
Changed (Internal / Architecture)
- Test coverage expansion — new tests for
prompt.rs(stream JSON, PromptOutcome),prompt_retry.rs(diagnose_api_error, build_retry_prompt),tools.rs(TodoTool, RenameSymbolTool, build_tools),commands_bg.rs,main.rs(build_json_output, apply_config_flags), and health check coverage (Days 73–74) - Command routing extraction — pure
route_command()function extracted fromdispatch_commandwith full test coverage, enabling deterministic testing of command routing (Day 72) accumulate_usagehelper — deduplicated 13-way token-accumulation arithmetic acrossprompt.rsinto a single function (Day 66)finish_prompt_epiloguehelper — collapsed duplicated 15-line post-prompt epilogue (cost display, bell, context bar) into one call (Day 66)PostPromptContext/ConfigDisplaystructs — replaced 13- and 14-parameter functions with named structs (Day 66)- 6 module extractions continuing the consolidation arc:
conversations.rsfromrepl.rs— side, quick, and extended conversation handlers (Day 64)prompt_retry.rsfromprompt.rs— retry logic, error classification, backoff (Day 64)prompt_utils.rsfromprompt.rs— search, highlighting, summarization utilities (Day 64)commands_update.rsfromcommands_dev.rs—/updatecommand (Day 65)commands_tree.rsfromcommands_dev.rs—/treecommand (Day 65)- Watch-mode auto-detection moved to
watch.rswhere it belongs (Day 65)
prompt.rsreduced from ~2,425 to ~1,300 lines — retry, utility, and re-export middleman cleanup (Days 64, 66–67)commands_dev.rsreduced from ~1,693 to ~714 lines — three command extractions (Day 65)- Re-export cleanup — removed
pub usemiddlemen fromprompt.rs; all dependents now import directly from source modules (Days 66–67) run_replreadability — architect mode and post-prompt handling extracted into named functions; startup banner pulled into its own function (Days 65–66)- Test race condition fix —
set_current_dirrace in parallel tests replaced with parameter-passing approach (Day 64) tool_wrappers.rsextraction — tool decorator types pulled out oftools.rs(Day 64)
v0.1.8
Day 50 milestone release — 51 commits spanning Days 36–49. Background processes, colorized blame, proper unified diffs, deep lint subcommands, and 23 shell subcommands wired for direct CLI invocation.
Added
/bgbackground process management — launch, list, view output, and kill background jobs with persistent tracker (Day 45)/blamewith colorized output — git blame with syntax-highlighted annotations (Day 48)/changelogcommand — view recent evolution history from the terminal (Day 44)/lint fix— auto-fix lint warnings (Day 46)/lint pedantic— extra-strict lint pass (Day 46)/lint strict— deny all warnings during lint (Day 46)/lint unsafe— scan for unsafe code usage (Day 46)- 23 shell subcommands —
help,version,setup,init,diff,commit,review,blame,grep,find,index,lint,test,doctor,map,tree,run,watch,status,undo,docs,update,pr— all invocable directly from the shell without entering the REPL (Days 48–49) - Per-command bash timeout parameter —
"timeout": N(1–600 seconds) for individual bash tool calls (Day 44) - Co-authored-by trailer on
/commit— automatically credits the AI in git commit metadata (Day 43)
Improved
- Proper unified diffs (LCS-based) —
edit_fileoperations now show real unified diffs with context lines instead of walls of red/green (Day 48) - Comprehensive categorized help — all 68+ REPL commands listed with descriptions, organized by category (Day 49)
- Piped mode gracefully handles slash-command input — no longer sends
/helpetc. to the model as a real prompt (Day 47) - Streaming output for
/runand/watch— live output rendering instead of buffered display (Day 45) /statusshows session elapsed time and turn count — richer session awareness (Day 43)
Fixed
- Dead code and unused annotation cleanup — removed stale
#[allow(dead_code)]markers and unused code paths (Day 48) - Destructive-git-command guard in
run_git()—#[cfg(test)]guard prevents tests from accidentally committing/reverting in the real repo (Day 45)
v0.1.7
Patch release with critical bug fixes — UTF-8 crash prevention, Windows build support, and sub-agent security hardening.
Fixed
- UTF-8 panic in tool output —
strip_ansi_codesandline_categoryno longer crash on multi-byte characters; safe char-boundary checks throughout string processing (Issue #250, Day 36) - Windows build — Unix-only
PermissionsExtimport in/updatecommand now behind#[cfg(unix)], allowing cross-platform compilation (Issue #248, Day 36) - Sub-agent directory restriction bypass — sub-agents now inherit parent's directory restrictions via
ArcGuardedToolwrapper (Day 35) - Audit timestamp — replaced shell
datecall with pure Rustchronofor reliable audit logging (Day 35)
Added
--print-system-promptflag — print the assembled system prompt and exit, for prompt transparency and debugging (Day 35)/context systemsubcommand — display system prompt broken into sections with line counts, token estimates, and previews (Day 35)- Fork-friendly infrastructure —
scripts/common.shauto-detects repo owner/name, workflows parameterized for forks, new fork guide in docs (Day 35) --providertypo warning — warns when provider name looks like a misspelling of a known provider (Day 35)
v0.1.5
Feature release adding provider failover reliability, AWS Bedrock support, structural repo mapping, and inline command hints — built across Days 29–32.
Added
- Startup update notification — non-blocking check against GitHub releases on REPL startup; shows a yellow notification when a newer version exists; skipped in piped/prompt modes; disable with
--no-update-checkorYOYO_NO_UPDATE_CHECK=1(Day 32) /mapcommand — structural repo map with ast-grep backend and regex fallback, showing file symbols and relationships (Day 29)- AWS Bedrock provider — full end-to-end support with BedrockConverseStream for Claude 3 models via AWS credentials (Day 30)
- REPL inline command hints — type
/heand see dimmedlp — Show helpsuggestions for faster command discovery (Day 30) --fallbackprovider failover — auto-switch to backup provider on API failure, with configurable provider priority (Day 31)
Improved
- Hook system extracted — Hook trait, HookRegistry, AuditHook, ShellHook consolidated into
src/hooks.rsfor better modularity (Day 31) - Config loading consolidated — single
load_config_file()eliminates 3 redundant config reads and improves error handling (Day 31)
Fixed
- Permission prompt hidden behind spinner — stop spinner before prompting to prevent UI interference (Issue #224) (Day 30)
- MiniMax stream duplication — exclude "stream ended" from auto-retry to prevent infinite loops (Issue #222) (Day 30)
write_fileempty content — validation + confirmation prompt for empty writes to prevent accidental data loss (Issues #218, #219) (Day 30)--fallbackin piped mode — fallback retry now works in piped and --prompt modes, with proper non-zero exit codes on failure (Day 32, Issue #230)
v0.1.4
Feature release adding agent delegation, interactive questioning, task tracking, context management strategies, and provider resilience — built across Days 24–28.
Added
- SubAgentTool — model can delegate complex subtasks to a fresh agent with its own context window, inheriting the parent's provider/model/key (Day 25)
- AskUserTool — model can ask directed questions mid-turn instead of guessing; only available in interactive mode (Day 25)
- TodoTool — agent-accessible task tracking during autonomous runs, shared state with
/todocommand (Day 26) --context-strategy <mode>— choose context management:compaction(default) orcheckpointfor checkpoint-restart on overflow (Day 25)- Proactive context compaction — 70% threshold check before prompt attempts to prevent context overflow errors (Day 24)
~/.yoyo.tomlconfig path — home directory config file now correctly searched alongside project-level.yoyo.toml(Day 27)- MiniMax provider — option 11 in setup wizard via yoagent's
ModelConfig::minimax()(Day 25) - MCP server config —
--mcpflag connects to Model Context Protocol servers via stdio transport; configurable in.yoyo.toml(Day 25) - Audit log —
--auditflag /YOYO_AUDIT=1env var records tool calls to.yoyo/audit.jsonlfor debugging and transparency (Day 24)
Improved
- Stream error recovery — auto-retry on transient errors including "overloaded", "stream ended", "unexpected eof", and "broken pipe" (Day 26)
/tokensdisplay — clearer context vs cumulative labeling for token usage (Day 25)- Bell suppression —
YOYO_NO_BELL=1env var suppresses terminal bell in CI/piped environments (Day 24)
Fixed
- Flaky todo tests — isolated global state with
serial_testcrate to prevent test interference (Day 26) /webpanic — non-ASCII HTML content no longer causes panics viafrom_utf8_lossyhandling (Day 25)- Config path mismatch —
~/.yoyo.tomlis now actually searched as documented (Day 27)
v0.1.2
Feature release adding per-command help, inline file mentions, new commands, and polished rendering — built across Days 20–22.
Added
- Per-command
/help <command>— detailed usage, examples, and flags for any slash command (Day 21) /grepcommand — direct file search from the REPL without an API round-trip (Day 21)/git stashsubcommand —save,pop,list,apply,dropfor git stash management (Day 21)- Inline
@filementions —@pathin prompts expands to file contents; supports line ranges@file:10-20and image files (Day 21) - First-run welcome & setup guide — detects first run, shows welcome message, guides API key and model configuration (Day 22)
- Visual section headers — output hierarchy with section dividers for clearer structure (Day 22)
Improved
- Markdown rendering — lists, italic, blockquotes, and horizontal rules now render properly with ANSI formatting (Day 21)
/diffwith inline colored patches — diff output shows +/- lines with red/green highlighting (Day 22)- Code block streaming — token-by-token instead of line-buffered; tokens now flow immediately during code output (Day 21)
- Architecture documentation — Mermaid diagrams added to mdbook docs (Day 21)
run_git()helper deduplication — consolidated repeated git command patterns into shared helper (Day 20)configure_agent()provider setup deduplication — cleaned up provider configuration logic (Day 20)- Tool output summaries — richer context for
read_file,edit_file,search, andbashtool results (Day 21)
Fixed
- Code block streaming buffering — tokens inside code blocks now flow immediately instead of buffering entire lines (Day 21)
- Missing transition separator — added separator between thinking output and text response sections (Day 22)
v0.1.1
Bug fix release addressing two community-reported issues.
Fixed
- Image support broken via
/add— images added with/add photo.pngwere base64-encoded but injected as plain text content blocks instead of proper image content blocks, so the model couldn't actually see them. Now/adddetects image files (JPEG, PNG, GIF, WebP) and sends them as real image blocks the model can interpret. Closes #138. - Streaming output appeared all at once — three root causes fixed: (1) spinner stop had a race condition that could prevent the clear sequence from executing, now clears synchronously; (2) thinking tokens went to stdout causing interleaving with text, now routed to stderr; (3) no separator between thinking and text output, now inserts a newline on transition. Also reduced the line-start resolve threshold so common short first tokens flush immediately. Closes #137.
v0.1.0
The initial release. Everything below was built from scratch over 19 days of autonomous evolution, starting from a 200-line CLI example.
Added
Core Agent Loop
- Streaming text output — tokens stream to the terminal as they arrive, not after completion
- Multi-turn conversation with full history tracking
- Thinking/reasoning display — extended thinking shown dimmed below responses
- Automatic API retry with exponential backoff (3 retries via yoagent)
- Rate limit handling — respects
retry-afterheaders on 429 responses - Parallel tool execution via yoagent 0.6's
ToolExecutionStrategy::Parallel - Subagent spawning —
/spawndelegates focused tasks to a child agent with scoped context - Tool output streaming —
ToolExecutionUpdateevents shown as they arrive
Tools
bash— run shell commands with interactive confirmationread_file— read files with optional offset/limitwrite_file— create or overwrite files with content previewedit_file— surgical text replacement with colored inline diffs (red/green removed/added lines)search— regex-powered grep across fileslist_files— directory listing with glob filtering
REPL & Interactive Features
- Interactive REPL with rustyline — arrow keys, Ctrl-A/E/K/W, persistent history (
~/.local/share/yoyo/history) - Tab completion — slash commands, file paths, and argument-aware suggestions (model values, git subcommands,
/prsubcommands) - Multi-line input via backslash continuation and fenced code blocks
- Markdown rendering — incremental ANSI formatting: headers, bold, italic, code blocks with syntax-labeled headers, horizontal rules
- Syntax highlighting — language-aware ANSI coloring for Rust, Python, JS/TS, Go, Shell, C/C++, JSON, YAML, TOML
- Braille spinner animation while waiting for AI responses
- Conversation bookmarks —
/mark,/jump,/marksto name and revisit points in a conversation - Conversation search —
/searchwith highlighted matches in results - Fuzzy file search —
/findwith scoring, git-aware file listing, top-10 ranked results - Direct shell escape —
/run <cmd>and!<cmd>execute commands without an API round-trip - Elapsed time display after each response, plus per-tool execution timing (
✓ (1.2s))
Git Integration
- Git branch display in REPL prompt
/diff— fullgit statusplus diff, with file-level insertion/deletion summary/commit— AI-generated commit messages from staged changes/undo— revert last commit, including cleanup of untracked files/git— shortcuts forstatus,log,diff,branch/pr— full PR workflow:list,view,create [--draft],diff,comment,checkout/review— AI-powered code review of staged/unstaged changes against main/changes— show files modified (written/edited) during the current session
Project Tooling
/health— run full build/test/clippy/fmt diagnostic for Rust, Node, Python, Go, and Make projects/fix— run the check gauntlet and auto-apply fixes for failures/test— auto-detect project type and run the right test command/lint— auto-detect project type and run the right linter/init— scan project structure and generate a starter YOYO.md context file/index— build a lightweight codebase index: file counts, language breakdown, key files/docs— quick documentation/API lookup without leaving the REPL/tree— project structure visualization
Session Management
/saveand/load— persist and restore conversation sessions as JSON--continue/-c— auto-load the most recent session on startup- Auto-save on exit — sessions saved automatically on clean exit and crash recovery
- Auto-compaction at 80% context window usage, plus manual
/compact /tokens— visual token usage bar with percentage/cost— per-model input/output/cache pricing breakdown/status— show current session state
Context & Memory
- Project context files — auto-loads YOYO.md, CLAUDE.md, and
.yoyo/instructions.md - Git-aware context — recently changed files injected into system prompt
- Codebase indexing —
/indexsummarizes project structure for the agent - Project memories —
/remember,/memories,/forgetfor persistent cross-session notes stored in.yoyo/memory.json
Configuration
- Config file support —
.yoyo.toml(per-project) and~/.config/yoyo/config.toml(global) --model//model— select or switch models mid-session--provider//provider— switch between 11 provider backends mid-session (Anthropic, OpenAI, Google, Ollama, z.ai, and more)--thinking//think— toggle extended thinking level--temperature— sampling randomness control (0.0–1.0)--max-tokens— cap response length--max-turns— limit agent turns per prompt (useful for scripted runs)--system/--system-file— custom system prompts--verbose/-v— show full tool arguments and result previews--output/-o— pipe response to a file--api-key— pass API key directly instead of relying on environment/config— display all active settings
Permission System
- Interactive tool approval — confirm prompts for
bash,write_file, andedit_filewith content/diff preview - "Always" option — persists per-session via
AtomicBool, so you only approve once --yes/-y— auto-approve all tool executions--allow/--deny— glob-based allowlist/blocklist for tool patterns--allow-dir/--deny-dir— directory restrictions with canonicalized path checks preventing traversal[permissions]and[directories]config file sections- Deny-overrides-allow policy
Extensibility
- MCP server support —
--mcpconnects to MCP servers via stdio transport - OpenAPI tool loading —
--openapi <spec>registers tools from OpenAPI specifications - Skills system —
--skills <dir>loads markdown skill files with YAML frontmatter
CLI Modes
- Interactive REPL — default mode with full feature set
- Single-shot prompt —
--prompt/-p "question"for one-off queries - Piped/stdin mode — reads from stdin when not a TTY, auto-disables colors
- Color control —
--no-colorflag,NO_COLORenv var, auto-detection for non-TTY
Other
--help/--version//version— CLI metadata/help— grouped command reference (Navigation, Git, Project, Session, Config)- Ctrl+C handling — graceful interrupt
- Unknown flag warnings — instead of silent ignoring
- Unambiguous prefix matching for slash commands (with greedy-match fix)
Architecture
The codebase evolved from a single 200-line main.rs to 12 focused modules (~17,400 lines):
| Module | Lines | Responsibility |
|---|---|---|
main.rs |
~1,470 | Entry point, tool building, AgentConfig, model config |
cli.rs |
~2,360 | CLI argument parsing, config file loading, conversation bookmarks |
commands.rs |
~2,990 | Slash command dispatch and grouped /help |
commands_git.rs |
~1,190 | Git commands: /diff, /commit, /pr, /review, /changes |
commands_project.rs |
~1,950 | Project commands: /health, /fix, /test, /lint, /init, /index |
commands_session.rs |
~465 | Session commands: /save, /load, /compact, /tokens, /cost |
docs.rs |
~520 | /docs crate API lookup |
format.rs |
~3,280 | Output formatting, ANSI colors, markdown rendering, syntax highlighting, cost tracking |
git.rs |
~790 | Git operations: branch detection, diff handling, PR interactions |
memory.rs |
~375 | Project memory system (.yoyo/memory.json) |
prompt.rs |
~1,090 | System prompt construction, project context assembly |
repl.rs |
~880 | REPL loop, input handling, tab completion |
Testing
- 800 tests (733 unit + 67 integration)
- Integration tests run the actual binary as a subprocess — dogfooding real invocations
- Coverage includes: CLI flag validation, command parsing, error quality, exit codes, output formatting, edge cases (1000-char model names, Unicode emoji in arguments), project type detection, fuzzy scoring, health checks, git operations, session management, markdown rendering, cost calculation, permission logic, and more
- Mutation testing infrastructure via
cargo-mutantswith threshold-based pass/fail
Documentation
- mdbook guide at
docs/book/covering installation, all CLI flags, every REPL command, multi-line input, models, system prompts, thinking, skills, sessions, context management, git integration, cost tracking, troubleshooting, and permissions - Landing page at
docs/index.html - In-code
/helpwith grouped categories
Evolution Infrastructure
- 3-phase evolution pipeline (
scripts/evolve.sh): plan → implement → communicate - GitHub issue integration — reads community issues, self-filed issues, and help-wanted labels
- Journal (
JOURNAL.md) — chronological log of every evolution session - Learnings (
memory/learnings.jsonl) — self-reflections archive (JSONL, append-only with timestamps and source attribution) - Skills — structured markdown guides for self-assessment, evolution, communication, research, release, and social interaction
- CI — build, test, clippy (warnings as errors), fmt check on every push/PR
Development Timeline
| Day | Highlights |
|---|---|
| 0 | Born — 200-line CLI on yoagent |
| 1 | Panic fixes, --help/--version, multi-line input, /save//load, Ctrl+C, git branch prompt, custom system prompts |
| 2 | Tool execution timing, /compact, /undo, --thinking, --continue, --prompt, auto-compaction, format_token_count fix |
| 3 | mdbook documentation, /model UX fix |
| 4 | Module split (cli, format, prompt), --max-tokens, /version, NO_COLOR, --no-color, /diff improvements, /undo cleanup |
| 5 | --verbose, /init,... |