← All posts

v0.3.1 — Sessions, Artifacts, Tool Schemas, and Provider Proxying

Web reliability release with persistent sessions, artifact browsing from chat, real tool JSON schemas for all 19 tools, and a same-origin backend proxy eliminating CORS failures.

Keating 0.3.1 is a web reliability release: saved sessions are easier to resume and manage, generated teaching artifacts are reachable from chat, the browser model gets real tool schemas, and custom providers no longer make direct cross-origin discovery calls from the page.

Session Continuity

  • Persistent storage prompt: Keating asks once for durable browser storage so longer learning histories are less likely to be evicted.
  • Auto-resume: returning to chat now restores the latest saved session instead of always opening an empty conversation.
  • Session manager: the history dialog can load, rename, and delete saved sessions.
  • Session-end recording: switching sessions or starting a new one records the end of the current learner session.

Artifacts in Chat

The chat header now includes an Artifacts button. It opens a side overlay for browsing lesson plans, maps, animations, benchmark reports, and evolution outputs without leaving the current conversation.

Provider Proxy Fixes

Custom-provider model discovery now calls Keating's same-origin backend proxy before reaching servers like Ollama, llama.cpp, vLLM, LM Studio, Synthetic, or Anthropic-compatible endpoints. That prevents browser CORS failures such as a direct request to http://localhost:11434/api/tags from https://keating.help.

The same proxy path now handles both discovery GET requests and chat POST requests, so non-standard custom providers and Anthropic-compatible endpoints share one backend route.

Tool Schemas

The web model still gets the full 19-tool Keating surface, but now each tool exposes real JSON Schema parameters instead of empty properties objects. The result is a teacher that can call planning, mapping, verification, benchmarking, prompt evaluation, due-work, timeline, feedback, and voice tools with valid arguments.

Version strings, package metadata, changelog, and the web build are aligned for v0.3.1.