github gptme/gptme v0.31.1.dev20260525

pre-release6 hours ago

v0.31.1.dev20260525

These are the release notes for gptme version v0.31.1.dev20260525.

Contributors

Thanks to everyone who contributed to this release:

@TimeToBuildBob

Changelog

Changes since v0.31.1.dev20260521:

📦 gptme

✨ Features (16)

  • feat(webui): launch SetupWizard from disconnected banner on first visit (#2494) (511bdbd3e)
  • feat(webui): surface gptme.ai as cloud alternative in disconnected banner (#2490) (5b4f29696)
  • feat(webui): opt into Chrome LNA for local-server fetches (targetAddressSpace) (#2488) (55b9cacc1)
  • feat(webui): add install step + setup-guide link to disconnected banner (#2481) (0f18cf1af)
  • feat(llm): surface diagnostic for generic out-of-credits 402 errors (#2467) (a085d2b18)
  • feat(bot): add /gptme-resolve comment macro trigger to resolve workflow (#2453) (ed054e4a8)
  • feat(tools): add vent tool for real-time friction signals (#2452) (32bf967a3)
  • feat(bot): add label-triggered issue resolver mode (#2445) (930acf352)
  • feat(tools): add when-to-use trigger language for choice, complete, and restart (#2442) (94f2feced)
  • feat(tools): add when-to-use trigger language for mcp and lessons (#2440) (fe6d73250)
  • feat(tools): add when-to-use trigger language for gh (992489cc2)
  • feat(tools): add when-to-use trigger language for screenshot, rag, vision, and todo (6861f00a9)
  • feat(eval): add minimal-feature-preserve-default-with-decoys scenario (0d935883f)
  • feat(tools): add when-to-use trigger language for elicit and form (#2437) (8a7cc6c44)
  • feat(tools): add when-to-use trigger language for vision and screenshot (#2435) (842efa85b)
  • feat(tools): add when-to-use trigger language for computer and morph (#2434) (1301dfa15)

🐛 Fixes (62)

Click to expand

  • fix(server): reject non-string step models (#2535) (64f74e318)
  • fix(cli): validate custom tool paths before init (#2533) (212139f93)
  • fix(server): validate agent creation field types (#2531) (ec61e388e)
  • fix(webui): keep api misses out of SPA fallback (#2532) (10ee75d53)
  • fix(telemetry): suppress OTLP timeout tracebacks (#2528) (2d64b73ec)
  • fix(server): return 409 for upload name exhaustion (#2529) (ef29f0682)
  • fix(cli): avoid blocking on idle stdin pipes (#2525) (9390f0ef7)
  • fix(cli): ignore disable env in prompts expand (bcfbd00bc)
  • fix(server): reject non-object conversation config (4f68269eb)
  • fix(server): use get_json(silent=True) in tasks endpoints (#2524) (84d5c5857)
  • fix(server): reject non-object v2 JSON bodies (e5c09e826)
  • fix(server): use get_json(silent=True) in tasks and agents endpoints (#2523) (03fca16a6)
  • fix(cli): honor --name when resuming conversations (#2522) (417a4f82a)
  • fix(mcp): deduplicate search_all results across registries (#2520) (ecfea2bae)
  • fix(webui): route auth code exchange through fleet (#2519) (d50617c57)
  • fix(server): validate PUT conversation body and messages types (#2517) (4c7fa7916)
  • fix(cli): reject unsafe conversation names (#2518) (fa6c9d80c)
  • fix(chats): add logger warning for skipped non-string content and narrower type hint (5f1fee889)
  • fix(webui): reset isLoading to false when disconnected in useModels (#2514) (568585c70)
  • fix(webui): gate useModels on connection state (#2513) (3282b11db)
  • fix(server): validate transcript turn text type to prevent 500 on non-string input (01729f32c)
  • fix(server): validate message content type in PUT conversation (#2511) (2bd3b3ca8)
  • fix(cli): reject directory passed to 'tokens count --file' (#2510) (7e1cdf1c6)
  • fix(server): validate session belongs to conversation across all sessions endpoints (#2508) (d5f44c478)
  • fix(cli): prevent gptme-util tokens count from hanging on no-input non-TTY (#2509) (5f527a0f6)
  • fix(server): return 404 from events endpoint when conversation does not exist (cca616bd9)
  • fix: prevent hang on empty query in chats search (#2505) (b68a38f75)
  • fix(webui): gate useTasksQuery on connection state (24d42078b)
  • fix(webui): suppress duplicate PNA hint in install block (9379aa6db)
  • fix(cli): reject overlong conversation IDs before filesystem access (#2502) (6bdf18dc3)
  • fix(server): return 400 for conversation_id/branch names exceeding NAME_MAX (#2498) (4d3f06f97)
  • fix(cli): remove browser backend noise from utility output (#2500) (a5b383286)
  • fix(chats): read finds any conversation by id and exits non-zero when missing (#2497) (7a39bba7f)
  • fix(cli): reject negative chats --limit instead of crashing islice() (#2496) (dad0fe359)
  • fix(cli): warn when 'models info' falls back for an unrecognized provider (#2495) (8bcc96e8b)
  • fix(cli): make non-default tools callable via gptme-util tools call (#2493) (b4664e9ad)
  • fix(chats): avoid scanning test logs for user stats (#2491) (b3b3e01b7)
  • fix(cli): tokens count treats '-' as stdin (Unix convention) (#2489) (3e137c218)
  • fix(cli): mcp commands exit nonzero on failure (#2487) (925eaae6a)
  • fix(cli): tokens count exits nonzero when no input is provided (#2484) (1ceb07ab1)
  • fix(cli): resolve bare provider-less model names instead of crashing (3072e1a4f)
  • fix(logmanager): tolerate unknown message fields when reading logs (#2482) (f1719b89a)
  • fix(tools): split comma-separated choice options (cf1c91a28)
  • fix(vent): tolerate trailing punctuation in resolution-owner tag (#2474) (9bd65be9b)
  • fix(bot): verify sha256 of downloaded github_bot.py (0973bbf44)
  • fix(lessons): use description field for semantic matching in hybrid_matcher (#2469) (35e426d19)
  • fix(bot): update model default, fix checkout version, tighten permissions (#2468) (aa7675878)
  • fix(vent): teach resolution-owner taxonomy, capture owner tag (#2463) (09bcf44ef)
  • fix(webui): surface payment-required chat errors (#2462) (a3302479a)
  • fix(hooks): replace invalid noqa directives in auto_snapshots (#2461) (e4e078fb0)
  • fix(tests): bump short prompt token limit to 4200 (#2460) (aad46a340)
  • fix(site): strip broken README TOC from homepage (#2459) (daea4ee98)
  • fix(tauri): verify server is usable before reusing port 5700 (#2458) (1bf0beb3c)
  • fix(webui): include status code and server error in models fetch failure (#2457) (137a55d53)
  • fix(android): disable broken mobile cloud setup path (#2454) (30bc3384e)
  • fix(tests): skip test_search_perplexity on Perplexity/OpenRouter quota exhaustion (#2450) (d30562d6d)
  • fix(benchmark): raise cold threshold to 10s and increase runs to 10 (#2449) (fdbcf5a92)
  • fix(bot): avoid duplicate resolve failure comments (#2447) (248aac98c)
  • fix(tauri): commit app icons and remove icons/* from gitignore (#2446) (abe287c84)
  • fix(tests): skip requires_api tests on invalid API key (AuthenticationError) (#2444) (b4b6ea58a)
  • fix(tools): keep tool descriptions within OpenAI limit (#2441) (89a5dccac)
  • fix(github): rewire stale PR view helper (#2432) (1071fac9a)

🔨 Misc (16)

Click to expand

  • chore: bump version to 0.31.1.dev20260525 (0e9745a29)
  • test(cli): add real resume hint coverage (#2530) (254d1edd4)
  • docs(readme): surface gptme-codegraph as a named feature (ab5ae11d8)
  • docs: surface gptme-codegraph as named ecosystem project in README (#2503) (c1861dbd7)
  • docs(webui): explain Chrome 142+ Local Network Access for hosted UI → local server (#2483) (7a01a7e0d)
  • docs(webui): document CORS origin needed for hosted UI + local server (#2478) (fea7042ce)
  • docs(readme): add multi-agent and provider support rows to comparison table (#2477) (a8ca40aae)
  • chore: ignore local test artifacts (#2476) (5e4abf48e)
  • test(server): relax tool confirmation log assertions (#2472) (82a170b09)
  • perf(lessons): cache lesson embeddings across turns in hybrid matcher (#2471) (ebd927dba)
  • perf(webui): route-based code-splitting via React.lazy (#2464) (98c6341e2)
  • test(webui): add setup wizard e2e coverage (#2456) (4880cd7cf)
  • docs(tools): add missing autocommit, precommit, and vent tool entries (#2455) (ec72c0452)
  • docs(tools): add 9 missing tools to tools.rst (#2443) (9fc3c925b)
  • test(config): document chat workspace default (ae0c4aa68)
  • chore: bump version to 0.31.1.dev20260521 (21e423787)

(excluded 2 less relevant commits)

Full Changelog: v0.31.1.dev20260521...v0.31.1.dev20260525

Don't miss a new gptme release

NewReleases is sending notifications on new releases.