Highlights since v0.1.0: - feat: SkillOpt-Sleep engine — nightly offline self-evolution (harvest -> mine -> replay -> consolidate behind a validation gate), with multi-objective reward, experience replay + dream rollouts, slow-update long-term memory, and secret redaction in cycle diagnostics. Shipped as the `skillopt-sleep` CLI. - feat: cross-tool backends & plugin shells — Claude, Codex (+Desktop harvest), Copilot, Devin, and OpenClaw. - feat: SearchQA split materialization + rollout fail-fast. - fix: Windows robustness for claude/codex backends, hardened JSON fallback, Qwen timeout/thinking gating, Codex failure surfacing. Packaging: - Bump pyproject / skillopt / skillopt_sleep to 0.2.0. - Restore skillopt_webui to the packaged wheel. See CHANGELOG.md for the full changelog and contributor acknowledgements. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.8 KiB
Changelog
All notable changes to SkillOpt are documented here. This project adheres to Semantic Versioning and the format is based on Keep a Changelog.
0.2.0 — 2026-07-02
The headline of this release is SkillOpt-Sleep: a nightly offline
self-evolution engine that harvests a coding agent's real session
transcripts, mines recurring tasks, replays them offline, and consolidates
short-term experience into long-term memory and skills — all behind the same
held-out validation gate that keeps SkillOpt training honest. It ships as a
decoupled top-level package (skillopt_sleep/, zero dependency on the
research code) and as the new skillopt-sleep CLI.
Added
- SkillOpt-Sleep engine — nightly offline self-evolution cycle
(harvest → mine → replay → consolidate) behind a validation gate, exposed
as the
skillopt-sleepconsole script andpython -m skillopt_sleep.- Multi-objective reward (accuracy / tokens / latency) with user preferences.
- Multi-rollout contrastive reflection under a token/time budget.
- Experience replay + controllable dream rollouts (opt-in).
- Slow-update long-term memory field (runs even with the gate off).
- 3-way train/val/test split with
gate_mode on|off. - Verifier-discipline validation gate, with a stress-test suite (thanks @Tanmay9223, #87).
- Cross-tool backends & plugin shells for Claude Code, Codex, Copilot,
Devin, and OpenClaw:
- Codex Desktop transcript harvesting, skill-first Codex integration, and a reviewed task-file flow (thanks @Kirchberg, #48, #49, #60).
- GitHub Copilot backend (
CopilotCliBackend) + research-engine MCP plugin (thanks @Dongbumlee, #50). - Devin plugin: MCP server + ATIF-v1.7 harvest (thanks @xerxes-y, #88).
- OpenClaw shell for SkillOpt-Sleep (thanks @Elzlxx, #59).
- SearchQA split materialization helper and fail-fast on systemic rollout
failures, with a
searchqainstall extra (thanks @summerview1997, #63, #64, #65). - WebUI environment loading and backend preflight (thanks @summerview1997, #63).
Changed
- Decoupled the Sleep engine into a standalone top-level
skillopt_sleep/package with zero dependency on the research code. - Made
EnvAdapter.reflecta shared default so reflect kwargs are no longer dropped (thanks @imshunsuke, #44). - English-only pass across the engine, plugins, and docs.
Fixed
- Windows robustness for the Claude/Codex backends, plus a hardened JSON fallback path (thanks @Yif-Yang, #79).
- Reject prose pseudo-JSON wrapped in single quotes/backticks (#82).
- Surface Codex auth/model/version failures instead of silently scoring 0 (thanks @dmmdea, #92).
- Redact secrets before persisting cycle diagnostics.
- Configure the
qwen_chat/minimaxbackends so local LLM endpoints work (thanks @imrehg, #85). - Forward the Qwen target timeout and gate
enable_thinkingfor vLLM targets (thanks @mvanhorn, #40). - Make
--bareconditional onANTHROPIC_API_KEY(#68), add aSKILLOPT_SLEEP_PYTHONoverride with a lookback-hours first-run fallback (#74), and fix ALFWorld gamefile paths relative toALFWORLD_DATA.
Packaging
- Bump
skillopt,skillopt.__version__, andskillopt_sleep.__version__to0.2.0. - Restore
skillopt_webuito the built wheel (it was dropped when thepackages.findinclude list was made explicit). - Add the
searchqaextra and includejson_repairin theclaude,qwen, andallextras.
Acknowledgements 🙏
v0.2.0 landed thanks to our community contributors — thank you!
- @Kirchberg — Codex Desktop harvesting, skill-first Codex integration, reviewed task-file flow (#48, #49, #60)
- @Dongbumlee — GitHub Copilot backend + research-engine MCP plugin (#50)
- @summerview1997 — SearchQA materialization, rollout fail-fast, WebUI preflight (#63, #64, #65)
- @xerxes-y — Devin plugin: MCP server + ATIF-v1.7 harvest (#88)
- @Elzlxx — OpenClaw shell for SkillOpt-Sleep (#59)
- @imshunsuke — shared
EnvAdapter.reflectdefault + docs fixes (#43, #44) - @mvanhorn — Qwen timeout forwarding +
enable_thinkinggating (#40) - @dmmdea — surface Codex auth/model/version failures (#92)
- @Tanmay9223 — verifier-discipline stress test (#87)
- @imrehg —
configure_qwen_chatfor local LLM endpoints (#85) - @samuelgoofus-boop — community contributions
Special thanks to @Yif-Yang for driving the SkillOpt-Sleep engine.
Full changelog: https://github.com/microsoft/SkillOpt/compare/v0.1.0...v0.2.0
0.1.0 — 2026-06-02
Initial public release: the full training loop (rollout → reflect → aggregate → select → update → evaluate), multi-backend support (OpenAI / Azure / Claude / Qwen / MiniMax), six built-in benchmarks, and the WebUI dashboard.