Release notes
gptme v0.35.0
These are the release notes for gptme version v0.35.0.
Contributors
Thanks to everyone who contributed to this release:
@erikbjare, @harimaruthachalam, @jaideeppyne, @Thibaultjaigu, @TimeToBuildBob, @vanshtaneja23
Changelog
Changes since v0.34.0:
📦 gptme
✨ Features (61)
- feat(shell): memory guard kills the agent's largest command when system memory runs low (#4348) (
6aa340f35) - feat(tui): queued prompts steer the running turn at its next step (#4346) (
e4fb3d976) - feat(tui,ipython): Ctrl+C stops a running tool in the TUI; ipython cells time out (#4354) (
d8a54a974) - feat(tui): show the running tool call, its elapsed time and timeout (#4344) (
804273354) - feat(lessons): capture private final-item evidence for precision readouts (#4340) (
ffd45727c) - feat(tui): command-driven status line ([tui] statusline) (#4339) (
3160b45f1) - feat(context): add max_tokens to ContextSelectorConfig; use it in LLMSelector (#4336) (
c4f1e463d) - feat(lessons): record final native context emissions (#4328) (
47673511b) - feat(compaction): record 'chunked' and 'native' methods in compaction.jsonl (#4318) (
7413443fc) - feat(compaction): summarize overflowed history in fresh-context chunks (#4309) (
fe24c6c0c) - feat(lessons): add optional GPTME_LESSONS_MAX_PER_TURN limit (#4294) (
7835c616f) - feat(server): apply model default_tool_format when webui omits tool_format (#4245) (
3e9169958) - feat(compaction): capability-gated Anthropic native compaction with signed-block replay (Phase 2) (#4244) (
6fe8ad4e1) - feat(lessons): add opt-in shared selector command adapter (#4283) (
6b4338cfc) - feat(site): add gptme.org/stats/ page from gptme/stats (#4279) (
381c29320) - feat(config): persist --agent-profile and re-apply it on resume (#4040) (
9511db3b7) - feat(eval): add constraint-satisfaction eval suite (#4082) (
4a9eb56ad) - feat(server): share auto-generated token with local clients via token file (#4061) (
6fdbc7bac) - feat(compaction): run checkpoint through normal tool loop (#4223) (
56ae66070) - feat(models): register Mistral Large 4 (#4229) (
83401e8bf) - feat(compaction): remind normal tool loop before context budget (#4174) (
021e57777) - feat(webui): expose server-owned global MCP settings (#4218) (
945cc4da9) - feat(server): structured GET/PUT /api/v2/user/config/mcp for global MCP config (#4095) (
b8c8527c9) - feat(util): add
gptme-util soundto play notification sounds from other harnesses (#4205) (70dab56ff) - feat(hooks): behavioral anomaly watchdog — scope_escape, write_storm, novel_host (#3953) (
3c8408463) - feat(subagent): context_mode=fork, per-call reasoning_effort, usage reporting (#4096) (
101b8a7e4) - feat(compaction): Phase 2 — compact_instructions, keep_recent, structured checkpoint (#3812) (#3966) (
e632523b5) - feat(watch): refuse sleep-N polling chains in the shell while watch is loaded (#4094) (
b3eacfcab) - feat(llm): client-side degeneration guard for OpenRouter streams (#4034) (
9f1697c21) - feat(webui): thread sseToken through to ApiClient EventSource ?token= (#4035) (
7f172f7fe) - feat(eval): add OpenShellExecutionEnv with kernel-enforced policy isolation (#4027) (
e549e7cf6) - feat(llm): attribute OpenRouter serving provider from response body (#4031) (
43b17c69d) - feat(llm): record provider-served model in message metadata (#4026
…