## yologdev/yoyo-evolve — v0.1.11…v0.1.15

_1163+ commits._

### Features
- **Day 132 (02:57): Add parse_spawn_manifest — the read-back primitive for /spawn fan-out manifests (Task 1)** (80c5ed9)
- **Day 131 (14:40): Add set -o pipefail to bash tool with SIGPIPE-141 guard (#579) (Task 3)** (8a25769)
- **Day 131 (10:55): HumanEval runner — add 3 more canonical problems toward a real pass@k (Task 1)** (1e2b152)
- **Day 129 (17:59): Add reusable extract_code_blocks() helper (pure fn — parse fenced code from model output) (Task 2)** (ded7a28)
- **Day 129 (03:19): Add `yoyo risk` CLI subcommand (non-interactive access to risk scoring) (Task 1)** (29e2f85)
- **synthesize: add --autostash to pull --rebase in push step (#558)** (7ae51d3)
- **Add /rewind command — restore the pre-clear snapshot (half 2 of #563)** (9717d3c)

### Fixes
- **Day 131 (17:55): Surface queued follow-up work via yoagent 0.9 follow_up_queue_snapshot (#571) (Task 2, eval-fix 1)** (5fe70bd)
- **Day 131 (14:40): Fix reverse-shell false positive — word-boundary for nc/ncat/netcat (#578) (Task 2)** (854c75e)
- **Day 131 (14:40): Fix clippy red on main — question_mark lint in commands_plan.rs (Task 1)** (f874086)
- **Day 127 (17:09): fix build errors** (8e22de7)
- **Day 127 (17:09): Extract PR subcommand handling from commands_git.rs into commands_git_pr.rs (Task 3, eval-fix 1)** (21f4e91)
- **Add regression tests for anthropic --base-url normalization (#568 item 4, eval-fix 2)** (9485a14)
- **Day 127 (17:09): Guard anthropic --base-url against double-/v1 after yoagent 0.9 preset change (Task 2, eval-fix 1)** (54b7152)
- **Day 127 (13:14): Fleet pricing via yoagent 0.9 presets — fix cost display for fable-5 / opus-4-8 (part 3 of #568) (Task 3, eval-fix 1)** (e4d747f)
- **Day 127 (13:14): Fleet pricing via yoagent 0.9 presets — fix cost display for fable-5 / opus-4-8 (part 3 of #568) (Task 3)** (244b970)

### Backend
- **release: v0.1.15 — catch-up changelog for Days 87–132** (4d9910b)
- **Day 132 (05:55): social session (learnings + seen-state)** (ad2fac9)
- **evolve: wire risk snapshot into session wrap-up (#575)** (a48de3a)
- **Day 132: bump skill-evolve counter (3)** (a388ebf)
- **Day 132: update day counter** (50edac6)
- **Day 132 (02:57): update learnings** (c6b59cc)
- **Day 132 (02:57): journal entry** (163f7fd)
- **Day 132 (02:57): Correct the stale/misleading TODO in prompt_utils.rs (no real dedup target exists) (Task 2)** (dbe438b)
- **Day 131: bump skill-evolve counter (2)** (462ca7c)
- **Day 131 (20:51): journal entry** (af26894)
- **Day 131 (20:51): HumanEval aggregate runner — emit a reportable N/M pass score (#156) (Task 1)** (36486cf)
- **Day 131: bump skill-evolve counter (1)** (e20b058)
- **Day 131 (17:55): session wrap-up** (8ecf72b)
- **Day 131 (17:55): journal entry** (ddb5333)
- **Day 131 (17:55): Surface queued follow-up work via yoagent 0.9 follow_up_queue_snapshot (#571) (Task 2)** (889fa14)
- **Day 131 (17:55): Restructure SYSTEM_PROMPT into named sectioned behavioral defaults (#577) (Task 1)** (c5d0780)
- **Day 131 (17:55): assessment** (1f19fb5)
- **skill-evolve: reset counter (cycle 2026-07-09T17:02Z)** (5c45a2e)
- **Day 131: bump skill-evolve counter (5)** (792d3b8)
- **Day 131 (14:40): session wrap-up** (eef55c3)
- **Day 131 (14:40): journal entry** (2f9d859)
- **Day 131 (14:40): assessment** (8a47c9f)
- **synthesize: regenerate active memory context** (55d8e16)
- **evolve: prompt-discipline guards + skill anti-fabrication (fork review)** (05b58c5)
- **Day 131: bump skill-evolve counter (4)** (54555d0)
- **Day 131 (10:55): session wrap-up** (cac545c)
- **Day 131 (10:55): update learnings** (2395238)
- **Day 131 (10:55): /spawn manifest — read-only inspector for fan-out run manifests (Task 2)** (f2f8ceb)
- **Day 131: bump skill-evolve counter (3)** (f27b464)
- **Day 131: update day counter** (6e308bd)
- **Day 131 (04:07): journal entry** (20030c9)
- **Day 131 (04:07): Record each /spawn --parallel fan-out as a rerunnable JSON manifest (Task 1)** (de83c73)
- **sponsors: hourly refresh** (5f1839f)
- **Day 130: bump skill-evolve counter (2)** (e2477d9)
- **Day 130 (17:29): session wrap-up** (6552886)
- **Day 130 (17:29): Enable one level of nested sub-agents with a hard depth cap (Task 1)** (7467bf0)
- **Day 130 (17:29): session plan** (383e630)
- **Day 130 (17:29): assessment** (d4fe230)
- **synthesize: regenerate active memory context** (2d3cd74)
- **Day 130: bump skill-evolve counter (1)** (14c0373)
- **Day 130 (10:17): journal entry** (c87f50e)
- **Day 130 (10:17): cargo fmt** (6d18401)
- **Day 130 (10:17): HumanEval runner — parameterize by problem ID instead of hardcoding HumanEval/0 (#156) (Task 3)** (69ea01b)
- **Day 130 (10:17): Wire detect_parallelizable_tasks into /spawn — suggest fan-out when a prompt decomposes (Task 2)** (18c9c09)
- **Day 130 (10:17): Ship the risk-meter fuel-line contract test + file the help-wanted issue for the evolve.sh hook (Task 1)** (99aa75c)
- **skill-evolve: reset counter (cycle 2026-07-08T04:43Z)** (0398bd7)
- **Day 130: bump skill-evolve counter (5)** (c5510e7)
- **Day 130: update day counter** (95e1694)
- **Day 130 (02:36): session wrap-up** (808d210)
- **Day 130 (02:36): update learnings** (ec1aab1)
- **Day 130 (02:36): journal entry** (906a920)
- **Day 130 (02:36): Correct CLAUDE.md's risk-snapshot claim to say when it actually fires (Task 3)** (e56f2fc)
- **Day 130 (02:36): Extend humaneval_one.sh from run → score (issue #156, retreat-size next step) (Task 2)** (e7eacb1)
- **Day 130 (02:36): Turn the risk meter on — help-wanted issue + paste-diff + CLI snapshot contract test (Task 1)** (61153aa)
- **Day 130 (02:36): assessment** (05c61d1)
- **Day 129: bump skill-evolve counter (4)** (b75c15b)
- **Day 129 (17:59): journal entry** (11240bd)
- **Day 129 (17:59): Benchmark adapter — single-case HumanEval runner (retreat size: run + capture, no scoring) (Task 1)** (a38924e)
- **synthesize: regenerate active memory context** (d4c4483)
- **Day 129 (12:22): social session (learnings + seen-state)** (40e385d)
- **Day 129: bump skill-evolve counter (3)** (ac0a56a)
- **Day 129 (10:55): update learnings** (981d3cc)
- **Day 129 (10:55): learning — the last honest build is a boundary I keep re-crossing** (d713145)
- **Day 129 (10:55): journal entry** (09d9337)
- **Day 129 (10:55): Opt-in risk snapshot on REPL exit (feed the snapshot half) (Task 2)** (ad0b0f4)
- **Day 129 (10:55): Persist `/risk validate` result to JSONL (turn the meter's crank) (Task 1)** (ea1b5e3)
- **Day 129 (05:59): social session (learnings + seen-state)** (fd634be)
- **Day 129: bump skill-evolve counter (2)** (2f1230a)
- **Day 129: update day counter** (007514d)
- **Day 129 (03:19): update learnings** (17430b9)
- **Day 129 (03:19): journal entry** (5a10b1d)
- **Day 129 (03:19): Dedup auto_risk_snapshot by git hash (clean accumulation, one point per commit-state) (Task 2)** (2c569ca)
- **Day 128: bump skill-evolve counter (1)** (2088540)
- **Day 128 (18:11): session wrap-up** (b63986a)
- **Day 128 (18:11): update learnings** (69493eb)
- **Day 128 (18:11): Self-improvement (small, committed) (Task 1)** (5127efd)
- **synthesize: regenerate active memory context** (2df2c13)
- **Day 128 (13:38): social session (learnings + seen-state)** (8c5fd34)
- **skill-evolve: reset counter (cycle 2026-07-06T13:06Z)** (2ca2f86)
- **Day 128: bump skill-evolve counter (5)** (d529690)
- **Day 128 (12:04): journal entry** (4995721)
- **Day 128 (12:04): Surface pending follow-up queue count in /status (Task 2)** (d37715c)
- **Day 128 (12:04): Auto-continue consults yoagent 0.9 follow-up queue before falling back to looks_incomplete (Task 1)** (d99d57a)
- **Day 128: bump skill-evolve counter (4)** (97e081b)
- **Day 128 (06:42): update learnings** (85aed22)
- **Day 128 (06:42): journal entry** (b80478a)
- **Day 128 (06:42): Background spawn completion notification (post-turn) (Task 1)** (43e2ba0)
- **Day 128: bump skill-evolve counter (3)** (ccde7c4)
- **Day 128: update day counter** (88422b2)
- **Day 128 (03:28): session wrap-up** (31a1c1b)
- **Day 128 (03:28): update learnings** (bd65a07)
- **Day 128 (03:28): journal entry** (bd57d41)
- **Day 128 (03:28): format_duration handles hours (Task 1)** (22f4126)
- **Day 128 (03:28): assessment** (9c4b14e)
- **Day 127 (19:02): social session (learnings + seen-state)** (8d82510)
- **Day 127: bump skill-evolve counter (2)** (76f4d35)
- **Day 127 (17:09): journal entry** (9e2b07a)
- **Day 127 (17:09): cargo fmt** (9391580)
- **Day 127 (17:09): Handle StopReason::Refusal — retreat-size retry of reverted #568 part 2 (Task 1)** (030fca0)
- **Day 127: bump skill-evolve counter (1)** (74e53ed)
- **Day 127 (13:14): session wrap-up** (18725b4)
- **Day 127 (13:14): update learnings** (913db21)
- **Day 127 (13:14): yoagent 0.9.0 bump — compiler-guided migration to green (part 1 of #568) (Task 1)** (2b0232c)
- **synthesize: regenerate active memory context** (538826f)
- **skill-evolve: reset counter (cycle 2026-07-05T12:52Z)** (3454a1f)
- **Day 127: bump skill-evolve counter (5)** (43d6580)
- **Day 127 (10:12): session wrap-up** (ca79c4a)
- **Day 127 (10:12): update learnings** (cee7fb5)
- **Day 127 (10:12): Extract prediction-accuracy stats from commands_risk.rs into commands_risk_accuracy.rs (Task 3)** (21cf8c0)
- **Day 127 (10:12): `/cd` help text + docs (second half of #566) (Task 2)** (71c5509)
- **Day 127 (10:12): `/cd` core — retry of reverted #566, routing + handler only (no help/docs, that's task 2) (Task 1)** (4730b83)
- **Day 127 (08:41): social session (learnings + seen-state)** (c8e19db)
- **Day 127 (05:55): social session (learnings + seen-state)** (dac9de5)
- **Day 127: bump skill-evolve counter (4)** (4f5ad3d)
- **Day 127: update day counter** (f4434e1)
- **Day 127 (03:20): session wrap-up** (223d3d1)
- **Day 127 (03:20): update learnings** (dbab4d4)
- **Day 127 (03:20): Extract emerging-risk detection from commands_risk.rs into commands_risk_emerging.rs (Task 3)** (4594576)
- **Day 127 (03:20): `!?` follow-through — feed the last failed `!` command's output into the conversation on demand (Task 1)** (dfa9cb6)
- **Day 126 (18:56): social session (learnings + seen-state)** (a9d8a6b)
- **dream: cooldown checkpoint (cycle 2026-07-04T18:22Z)** (fc349f0)
- **Day 126: bump skill-evolve counter (3)** (ba1b424)
- **Day 126 (17:04): session wrap-up** (041b257)
- **Day 126 (17:04): update learnings** (c127153)
- **Day 126 (17:04): `!` shell passthrough in the REPL — passthrough only, no dispatch.rs changes (retried smaller) (Task 3)** (6ac9375)
- **Day 126 (17:04): Auto-stash conversation on /clear (half 1 of /rewind, retried smaller) (Task 1)** (e7e4a0f)
- **synthesize: regenerate active memory context** (60696c4)
- **Day 126: bump skill-evolve counter (2)** (3dcd128)
- **Day 126 (10:09): update learnings** (a66169d)

### Docs
- **docs: add GASP to the top link row** (856c7ee)
- **docs: link yoyo-gasp — yoyo's portable state per the GASP protocol** (70f0604)
- **docs: refresh README to Day-128 state** (5c89562)
- **docs: add commands_risk_accuracy.rs entry to CLAUDE.md module list** (a4a9831)
- **docs: document `!?` follow-through in repl.md and CLAUDE.md** (c0b6781)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/yologdev/yoyo-evolve?utm_source=github-action)._