This file tracks user-visible changes. v0 is the open-source baseline —
everything before it is captured in git history (git log), not here.
- CLI onboarding redesigned (#940).
stash signinwalks a first-run wizard that can be re-run anytime with the newstash setup— no answer is final. Session recording is framed as private-by-default and on by default (stash stoppauses). The agent picker uses[x]checkboxes where enter toggles and aDonerow saves.stash connectworks in any folder — a git repo is no longer required. History import runs in the background via the newstash import-history(parallel uploads;--statusattaches a live progress bar). Re-uploading a transcript for a deleted session now reports a clean skip instead of a 404 error, and no longer pollutes plugin upload health. stash memoryis now a command group (#941):stash memory write "<Path>"creates or updates a Memory wiki page (stdin for long bodies) andstash memory lsprints the wiki tree — the direct write surface for agents that maintain the wiki themselves. Barestash memoryand--recomputeare unchanged.- The nightly cloud Memory curator has an off switch (#942):
stash memory --curator off|on, also surfaced in the web curator panel. On-demand recomputes keep working while it's off. - Scheduled agent run history now reports each run's status, error, duration, event count, and tool count while preserving the chronological transcript feed used by the agent workspace.
- Scheduled agent runs no longer crash in local dev mode: the MCP registry's
.mcp.jsonis now written to the local simulated workdir instead of the literal/home/sprite/workpath, which is unwritable on dev machines. - Gong call documents now link back to the original call in Gong.
stash vfs statonce again shows the source-sharing command for connected source roots, including roots that do not have an app URL.- OAuth reconnects now require a stable provider account identity. Slack, Asana, Jira, Linear, Notion, and Gong connections refuse to store new credentials when identity lookup fails, preventing retained source data from silently continuing under a different provider account.
- Frontend server-side backend requests now require
BACKEND_INTERNAL_URLorNEXT_PUBLIC_API_URLinstead of guessing an environment, so missing managed deploy config fails during build rather than crashing public Stash pages at runtime. - Added a committed
docker-compose.local.ymloverride for laptop self-hosting dry runs. It exposes backend, frontend, and collab on localhost ports and disables Caddy. - Self-hosting now uses a prebuilt
ghcr.io/fergana-labs/stash-frontendimage alongside the backend and collab images, sodocker-compose.prod.ymlno longer builds application containers on the target machine. - Backend now routes markdown and HTML uploads to the pages table on the
one upload endpoint, so every surface (frontend drag-drop, CLI
stash files upload, MCPstash_upload_file) gets the same behavior. The response is a discriminated{kind, ...}payload —kind: "page"for md/html,kind: "file"for everything else. - MCP server gained ten tools to reach parity with the CLI on agent-
useful surfaces: discover (
stash_search_public_stashes,stash_read_public_stash), page search (stash_search_pages), session ops (stash_session_transcript,stash_delete_session), invite management (stash_create_invite,stash_revoke_invite), stash access control (stash_set_stash_access), and table tooling (stash_update_table,stash_export_table). - Renamed the three unprefixed MCP tools to share the
stash_prefix with the rest of the surface:stash_list_trash,stash_restore,stash_purge. - Added
BACKEND_INTERNAL_URLenv var so docker / self-host deployments route the Next.js server-side fetches at the in-network backend hostname instead of looping through the public URL. Public Stash pages no longer 500 on a fresh self-host boot. - Added
INTEGRATIONS_ENCRYPTION_KEY,ANTHROPIC_API_KEY,ANTHROPIC_MODEL, andANTHROPIC_FAST_MODELto.env.example— every variablebackend/config.pyactually reads is now in the reference file. - Refreshed user-facing docs (
README,ARCHITECTURE,USE_CASES,DESIGN, thefrontend/docs/*pages) to match shipped product surface: real concept names, real CLI commands, real container set for self-hosting. - Bumped the Claude Code plugin to 0.1.84 so the cached
SessionStart context refreshes — older versions injected
stash history */stash notebooks listreferences to commands that no longer exist. - Added
stash vfs, an app-level virtual filesystem shell for browsing Stash with bash-shaped commands and editing existing writable pages. - Kept
stash mounthidden as experimental spike code; the supported production path isstash vfs.
Initial open-source release.