# Version 0.1.2

Released on 2026-07-26.

- [2026-07-24] Models and core: three builtin file tools (`read_file` / `edit_file` / `write_file`) with bounded reads, atomic writes and the shell as the general fallback, model-written call descriptions configured per tool entry, exact CLI call/output formats and a fuller startup banner, mid-run steering delivered as standalone `[user_steering]` user messages plus a queue-if-busy follow-up path, all system markers unified onto paired square brackets (the angle form stays parsed), the thinking level turned into a per-request parameter with `session_meta` reduced to invariants, model switching done handoff-style through a new session that reads the source trace, the default prompt presenting the project dir as the App Data Dir with a restore-defaults action as existing agents' adoption path, and OpenRouter catalog rows for three free models plus the paid Claude Opus 5. ([details](2026-07-24-models-and-core.md))
- [2026-07-24] Sites: a bilingual free-models blog post — the lineup, how to enable it, and honest caveats — featured as the newest announcement-bar slide. ([details](2026-07-24-sites-and-blog.md))
- [2026-07-24] Tooling: the dev entry points default `PENGUIN_HOME` to a separate `~/.penguin/dev-data` root, so running from source no longer shares agents, sessions and `web.db` with the installed penguin (an exported `PENGUIN_HOME` still wins; product defaults unchanged). ([details](2026-07-24-tooling.md))
- [2026-07-24] Backward compatibility: what this batch keeps tolerating from existing Traces and configs — the legacy angle-bracket markers, `session_meta.thinking_level` on resume, agents' verbatim stored config (and the Restore default configuration path to the new prompt and file tools), and a missing `tools.call_description` reading as enabled. ([details](2026-07-24-backward-compatibility.md))
- [2026-07-24] LLM request errors surface their underlying `cause` (e.g. `terminated: other side closed (UND_ERR_SOCKET)`) instead of a bare `terminated`, visible in the Cost Center and Traces. ([details](2026-07-24-llm-request-errors.md))
- [2026-07-22] Web App: unified the form controls onto a shared Field/portal layer (now with required-field `*` markers), moved notifications to one rule (success/info → top toast, field errors inline with a red border; error prompts localized by code), generalized write confirmations (every file-writing save / uninstall / upload-overwrite now confirms via one polished dialog with tone icons — skill updates show each agent's `v_old → v_new` — and an unchanged save toasts "no changes to save"), made the Cost Center show the full error message, deduplicated the i18n copy (dead keys removed, shared `common` labels, lowercase "agent"), and reworked the sidebar session list onto category-filtered paging (default load = active rows only; the Subagents/Scheduled/Archived folders load on first open and page independently); plus the separate-origin Workspace HTML previews (now also the in-app rendered view's path), mid-run steering or queued follow-ups from the chat input, `/model` continuing the conversation on a picked model in a new session, a per-turn thinking-level override in active sessions, a light-yellow Free badge on free models in the Models cards and the chat picker, and tool-call cards carrying model-written call descriptions with payload-showing approvals. ([details](2026-07-22-web-app.md))
