docs/changelog.md
Changelog
Every user-visible change to Picasso for Mac and the Picasso CLI/TUI (@picassohq/cli), newest first. Mac versions are the signed app releases; CLI/TUI changes ship from the same source and are listed under the Mac release that first carried them. Dates are YYYY-MM-DD (UTC release time).
Current: Picasso for Mac 1.0.54 (build 1775, Apple silicon, macOS 14+). The engine is pinned to 0.2.2-rc.1; newer engines arrive through the gated background updater.
Unreleased (main, next: 1.0.55)
Changed
- What changed reads as what each command did. One row per command, failures first, a header such as "16 commands · 1 failed", and Copy summary. The "Show N more" line is now a real button that expands the list, with "Show fewer" to fold it back.
- Live step rows name the step. A step reads "Running · <title>" while it runs and "Ran · <title>" when it is done, instead of a generic status line.
- Enter sends a queued message now. With the composer empty, Enter steers the selected queued message (else the oldest) into the running turn; with text in the composer, Enter still queues. The queued row says so: "Queued — press ⏎ to send now" on Mac, "queued · Enter sends now" in the TUI.
- Steers look like your own messages. A steer wears your message bubble on Mac; the TUI reads "› steered …".
Fixed
- A shell command that exits non-zero shows ✕ in the thread, not ✓.
[1.0.54] - 2026-11-09
Added
- Background processes in the inspector (Mac) and
/tasks(TUI): each process has a human title (the agent's description, else a short summary of the command), a status line ("Running · 2m", "Completed · 3s", "Failed · exit 1 · 8s", "Stopped", "in <folder>"), groups Running → Failed → Completed (Completed folds past five), and the full command (with Copy) and last output on demand./tasks kill <jobId>stops one. - API-key sign-in opens the provider's key page. Settings › Providers opens the API-key page for Z.AI, DeepSeek, Google AI Studio, Anthropic, OpenAI, OpenRouter, xAI, MiniMax, Moonshot/Kimi, Groq and Cloudflare ("Opened <host> in your browser. Create a key there and paste it here."); other providers say "Paste your <Provider> API key."
- `picasso run --provider <provider>` accepts a provider route you added yourself, not only the built-in families. A wrong provider lists the families and your configured routes.
Changed
- Provider changes show at once in Connections and Connected, without reopening Settings.
- Settings › Connections: dragging reorders from the ≡ handle and never moves the window.
- Studio's moving backdrop also stops while Picasso isn't the active app (measured background CPU on 1.0.54: 0.21%).
[1.0.53] - 2026-11-09
Added
- Model facts from real sources. Every model's input window, output limit and reasoning levels come from the provider's model listing, then its documentation, then a bundled model catalog, then your saved settings; anything unknown stays "unknown". Mac Details reads e.g. "1M in · 131K out · levels" or "Context unknown · Output unknown".
- `picasso models [--json] [--runtime-config <path>]` lists every model with its context window, output limit and reasoning levels;
picasso provider check <route>lists each model's name, window, output, levels and sources. - Project tiles. Every project gets a generic initials tile (AuraOne → AO, aura3d → A3, picasso → P, my-web-app → MW) in a ten-hue palette, with distinct colours for up to ten projects; the TUI resume picker uses the same tile. Picasso does not read images from your project folders.
Changed
- One display name for providers and models in every model menu (for example "Cloudflare Workers AI", "GLM 5.2").
- A thread or default naming a removed or renamed route follows its model to the route that serves it now; otherwise the error names the model and provider plainly.
- Studio no longer shows a breadcrumb on the start page; the thread header keeps "project / title".
Removed
- A private gateway preset that was never meant for the shipped provider catalog. Add any OpenAI-compatible gateway with Settings › Providers › Add provider or
picasso provider add.
[1.0.51] – [1.0.52] - 2026-11-09
Changed
- Recent shows This month. The month summary is now one line at the foot of Recent ("This month 23 threads ↑23 · 4 files changed"); the start page shows three cards per row, and
/customize monthreaches Recent. - Z.AI models show their documented context window, output limit, reasoning levels and names (GLM 5.3: 1M input, 131K output, low/high/max).
/initandpicasso initname only skills installed for you, from the project and home skill folders./activity githubpoints at/project connectwhen no repo host is connected; an empty Usage › Tokens page reads "No tokens reported".picasso about --footprintand Settings › About summarize what Picasso puts on your Mac.
[1.0.50] - 2026-11-09
Added
- Start page. A labelled activity heatmap (months, Mon/Wed/Fri, Less/More legend, year paging, "N threads in 2026"), a GitHub/GitLab contributions card from your connected repo host (cached for an hour, hidden without one), a greeting with the date, and the headline "What should we build in ‹project›?" with "or start without a project". Customize shows, hides and reorders cards (the sponsored card can move but not hide); the layout is shared between Mac and TUI. TUI:
/activity [github] [year],/customize;/new --no-projectstarts without a project. - Inbox zero for threads. The sidebar groups threads as Needs you / Working / Settled (Settled folded by default), with row badges Approval, Input, Done, Working Nm and age. One-click Archive with Undo (⌘Z); ⌘⌫ archives, ⌥⌘⌫ deletes. The TUI resume picker groups Needs you / Working / Recent / Settled;
earchives anduundoes. - Keep threads running when Picasso quits (Settings › General, off by default): a resident runner keeps turns and schedules going, restarts only at a quiet moment, and refuses to start when a plugin or identity check fails, saying why in Settings › General. CLI:
picasso service install|uninstall|status; TUI/settingsshows whether it is on. - Schedules that message a thread or start a new one, once or repeating: create, edit, pause, resume, delete, history, and missed runs reported until dismissed. Mac: Extensions › Schedules; TUI
/schedules(alias/schedule); CLIpicasso schedules list|create|show|pause|resume|queue-due|review|runs. - `picasso update [--channel stable|beta] [--install] [--runtime]` checks for a newer Picasso and runs one engine check now;
picasso update runtimereports the pinned engine. - Librarian. Threads started without a project are filed into the right one after their first turns, with their own daily token budget (they wait until local midnight once it is spent), Pause and Look at everything, and Next/Recent lists. Mac: Librarian page; TUI
/librarian [pause|resume|look-all|budget <n>]; CLIpicasso librarian status|pause|resume|look-all|budget <tokens>(e.g.budget 300k). - Engine updates card in Settings › General and
/updatesin the TUI: the next check, a version waiting to switch, recent results. - Decisions and options. Two or more asks in one turn show one numbered card ("N of M answered", Continue); approvals are Allow / Allow for this thread / Deny. The agent can present 2–4 options (HTML, image, code or text) in an options window: pick one, add a note, Send ⏎ or Skip esc. TUI: "Needs you · N decisions …", approvals answer with 1/2/3 (a/s/d still work), options as a numbered list.
- My Work lists the files your sessions made, with Make a similar one (prompt: "Make another like this: <name>"). Mac: My Work page and artifact menus; CLI
picasso work listandpicasso work similar <artifact>; TUI/work,/work open|copy|similar <n>. - Context timeline: per-turn context additions, compaction, per-step cache hit/miss and subagent lanes. Mac: Context tab › Timeline; TUI
/context timeline; CLIpicasso context timeline [thread] [--last] [--json](no model call). Missing data reads "No usage reported" / "Size not recorded". - Read public X through x.md (mdfromx.com, a third-party service: X links you open are sent to it). Links to x.com, twitter.com and t.co are fetched through it automatically, and the agent can read posts, replies, searches, profiles, followers, following, history and interaction circles. CLI
picasso x <url>,picasso x search <query>,picasso x @handle,picasso x circle @handle; TUI/Mac/x; an X-link paste card attaches a link as a source. Settings: on/off, base URL, Markdown or Obsidian format;picasso settings x-reader-key set|remove|statuskeeps an optional key in the Keychain. - Extensions show their cost and reach. Each plugin, MCP server and skill shows its measured per-turn cost ("Every turn 142 tokens · On demand 1.2k tokens", with a warning above 3,000 tokens) and data access ("Reaches: <hosts> · Reads: <keys>"). Installing or turning on a third-party plugin or app asks for approval once; the CLI and TUI need
--yes. Mac,picasso extensions list,/extensions list. - Connect an app: Blender, Figma, browser automation, Xcode, iOS Simulator and x.md (the only remote one, labelled third-party). Mac: Extensions › Connect an app; CLI
picasso mcp apps,picasso mcp add [name],picasso mcp remove <name>; TUI/mcp add [app] [--yes],/mcp remove. - First-launch tour (Studio composer, Threads, thread view, inspector toggle, Settings; Next ⏎, Back ←, Skip tour esc) and Help › Take the tour; TUI
/tour. - Install by asking your agent:
picasso about --install-prompt [mac|cli],/about promptand Mac Help give a prompt that asks your agent to check a release before installing it. - What Picasso puts on your Mac: a page listing the app bundle, processes, engine folders, the runner LaunchAgent, the
~/.picassolayout, Keychain items, network endpoints and how to remove everything;picasso about --footprintand/about. - Thread header breadcrumb "project / title" on Mac: the project opens Threads narrowed to it, with "Show all projects".
Changed
- Composer. The placeholder reads "Ask anything. @ files, $ skills, / commands";
$opens a skill picker. A quiet chip row under the composer shows the checkout ("Current checkout" / "New worktree"), branch and permission, replacing the large approval and folder buttons in the Studio box; the mic sits by the model and effort picker. - Layout toggles at the top right (sidebar ⌘B, new bottom panel ⇧⌘Y, inspector ⌘J); the sidebar footer holds Settings, Source control, Usage and Help.
- Studio backdrops are Aurora (default), Dots, Plain, Image (your own picture or GIF) and the new Horizon glow.
- Extension approvals use plain approval wording ("It comes from a third party, not Picasso. Picasso asks once.").
Removed
- Internal performance probes and their environment toggles (
PICASSO_PERF_TRACEstays for tracing).
[1.0.45] – [1.0.49] - 2026-11-09
Added
/skills add <owner/repo>in the TUI uses the Picasso skills installer: it shows the plan first and installs with--yes.picasso run --model <provider>/<id>accepts a provider-prefixed model id.- Extensions › Add index saves and shows marketplace indexes.
Changed
- Studio's moving backdrops hold a still frame after 60 seconds without input and in Low Power Mode.
- Ask-the-user questions and plan reviews reach you in the TUI, and tool results read as text, not raw JSON.
/fork,/undoand/rewindsay where you are and how to get back ("You're now in the fork; the original is unchanged. Back to the original: /continue <id8>"); forks keep the session's permission mode.- Goal sessions are titled by their objective.
- When the engine exits, Picasso says why, with credentials redacted; provider errors and
picasso logsredact echoed credentials too. - Every terminal text colour in every theme meets WCAG AA contrast.
- A stopped turn settles its running tool and job rows.
- A direct MCP
<server>_callworks on the 0.2.2 engine, and MCP config changes reach new sessions. picasso doctorreports a background-updated engine as installed.- Finished background processes sort by when they finished.
Security
- A legacy history import only writes into the signed-in account's own Picasso home.
[1.0.43] – [1.0.44] - 2026-11-09
Added
- The engine updates itself silently (CLI and app relay): every six hours, only when idle, release-candidate or stable builds only, with integrity and boot checks, an atomic swap at the next start and automatic rollback. The signed Mac app stays on its bundled engine, and app updates install silently. The engine is pinned to 0.2.2-rc.1.
- 13 themes shared by Mac and TUI: Picasso, Catppuccin Latte, Catppuccin Mocha, Gruvbox Light, Gruvbox Dark, Nord, Solarized Light, Solarized Dark, Tokyo Night, Rosé Pine, One Dark, GitHub Light and GitHub Dark, plus your own custom themes (
/theme,picasso settings set theme). - Goal rounds: "Goal round N of M" cards, live and after
/resume. - `/review --fresh <path> [--drift]`: independent reviewers that see only the document and the files it references, with merged findings.
- Skills:
picasso skills add <source>(GitHub URL, owner/repo or a local git path),picasso skills remove <name>,picasso skills scan,picasso skills import <path>; Mac Extensions › Add skills.
Changed
- A thread's mode is locked after the first turn, with "New thread in <mode>" to change it; file and artifact cards have Copy contents.
- Theme switches always repaint.
[1.0.37] – [1.0.42] - 2026-11-07 – 2026-11-08
Added
- Model connections: an ordered list of connections with fallback on quota, sign-in or outage (ask, ask before using managed, or automatic) and Check access. Mac Settings card; CLI
picasso models connections(list,move <id> up|down|top|<n>,policy ask|ask-managed|auto,check <id> [model]); TUI/model connections. - A worktree per thread by default (setting
worktreeDefault: "New worktree (default)" or "Current checkout"), with a picker for existing worktrees. - History import: bring in Claude Code, Codex and OpenCode sessions with
picasso import [claude|codex|opencode|all] [--dry-run] [--status] [--json], Settings › Import or the interactive picker; TUI/import. - PR wake-ups:
picasso pr watch <pr>andpicasso pr status; a watched PR wakes its thread once on checks, reviews or conflicts. TUI/pr watch <n>. - Interrupt and an editable queue: ⌥⏎ (Mac) or ⌃Q (TUI) interrupts; queued messages can be edited and reordered, and a paused queue offers Send next.
- "While a turn is running, Enter…" setting (queue or steer); CLI key
enterWhileRunning. - Long pastes fold into "Pasted text" cards (Mac viewer; TUI chip with a Ctrl+O pager).
- `picasso host start|pair|stop|status|revoke|doctor|verify`: a headless host with one-time pairing codes, pinned TLS and a folder allowlist;
picasso attach --pair <code@host>. Mac: Pair host. - Custom finish sound (Mac).
- Inspector Changes tab (whole thread by default, with a scope menu), and Preview finds the thread's dev servers.
[1.0.26] – [1.0.36] - 2026-11-07
Added
- Studio backdrop with a live shader (Aurora), plus Dots and Plain; Reduce Transparency falls back to Dots.
- Clickable links (OSC 8 in the TUI; http, https and mailto on Mac); notification clicks open their thread.
- What changed collapses per card, with the default under Settings › General ("Collapse/Expand by default").
- Inspector Overview: one dense column with the summary, environment (diff stat and commit), subagents, one-line processes, skills and artifact tiles, under an icon tab strip.
- Editor Problems across the workspace with ESLint, Pyright, Ruff, gopls and rust-analyzer; a terminal in any folder.
- Progress reports every 10 minutes on long tasks (setting
progressReports). - Reduced motion in the TUI:
--no-animationorPICASSO_REDUCED_MOTION=1, or Settings › Appearance › motion;--accessibleorPICASSO_A11Y=1for the accessible layout. - The Studio thread opens at once with "Starting the thread…".
Changed
- Studio model choice lives in the headline, with Auto routing.
- Failed turns show the status and message (e.g. "503 · <message>"), not the raw response body.
- Running jobs and the subagent queue moved out of the sidebar into the inspector's running processes.
- Permission and preset menus read Read only, Workspace write, Full access and Auto; presets Default, Scripted tools and Bare.
[1.0.12] – [1.0.25] - 2026-11-04 – 2026-11-06
Changed
- Picasso runs its engine on its own home,
~/.picasso/dsh-home, copied once from an existing engine home on first run. Settings, exports, shares, plans and telemetry honorPICASSO_HOME. - Settings open inside the main window (Providers, General and the other sections), reached from one View menu; deep links scroll to their card.
/model <id> @<effort>sets the reasoning effort for every built-in model; the model picker footer says how.- CLI usage mistakes exit with code 2 and no crash report;
--max-turns <n>exits with code 6.
[1.0.4] – [1.0.11] - 2026-11-02 – 2026-11-04
Added
- Provider sync:
picasso provider sync [--from <home>] [--profile <name>] [--dry-run] [--auto <state>], and a Mac card with Sync now and "Sync automatically". - Add and edit a provider's models in Settings; Edit lists every model the endpoint reports.
picasso memory recover-sync-lock; memory sync pushes in size-capped batches.
Changed
- Picking a model whose window is smaller than the thread's context asks first; a max-tokens turn says the thread is over the model's window.
- Google defaults to
gemini-4-argon; Prism lists Haiku 5.5. - Long prompts fold into "Pasted text"; scrolling a long thread no longer freezes the app.
[1.0.0] – [1.0.3] - 2026-10-30 – 2026-10-31
Added
- `picasso attach --mac` follows a turn already running in the Mac app, with
--prompt,--cancel,--interaction <id> --decision allow|allow-session|denyand--json; any outcome other than completed fails the command. - Synced sessions continue on another machine:
picasso session cloud show <id>andpicasso session cloud continue <id> [prompt](titled "(continued)"); Mac View → Continue here. picasso memory add <note...>, the shell form of/memory add.
Changed
- The CLI is packaged as
@picassohq/cli(not yet published). - Picasso only uses the engine version it is pinned to: a missing or older engine is replaced at startup, and
picasso doctornames an engine on your PATH that it skipped.
Earlier
Added
- Cache harness documentation for stable prompt and context assembly, provider-specific cache hints, session trajectory evidence, public-safe episode packages and opt-in live provider cache validation.
- Provider docs for OpenAI
prompt_cache_key, Anthropiccache_control, Gemini explicitcachedContentand vLLMcache_salt.
Security
- The cache harness threat model covers explicit cached-content handles, Anthropic breakpoint placement, raw cache key and salt redaction, and fail-closed live provider validation.
Format
Picasso follows Keep a Changelog and semantic versioning. Each release uses the sections Added, Changed, Deprecated, Removed, Fixed and Security.
- Every user-visible change gets an entry; security entries are explicit.
- Breaking changes are called out in
ChangedorRemoved. - Release dates use
YYYY-MM-DD. - Marketing and docs may name periods, such as Blue Period for v1.0, but the changelog stays version-first.