memsprout ← Back to home

What's new

Updates to memsprout, newest at the top.

2026-06-12 164

Shared Spaces lead with Topics

A Shared Space now opens on its Topics, not a tabbed settings screen. The landing is a searchable grid of Topic cards — each showing how many Memories it holds, description, latest capture, and who's been filing into it (including how many an agent auto-filed). Open a Topic to read and capture only within it (a Memory you add there is filed into that Topic), or hit "All Memories" for the flat feed. Type filters and the per-memory Topic reassign carry over. Everything administrative — Details, Topics, Members, and an Owner-only Insights tab — now lives on a dedicated Space settings page reached from the header.

2026-06-12 162

Design polish: collapsed composer, space headers, member cues

The capture box now starts as a quiet "Add a Memory…" row that expands when you click it (and collapses after you capture). Shared Space headers now show your role with a clear badge — Owner, Editor, or Viewer — and new members get a short "Getting started here" card. Viewer access is now spelled out where capture isn't available, Owners are marked with a shield, and your own row shows a "You" tag. Copy tightened throughout.

2026-06-12 160

memsprout moves to memsprout.com

memsprout now lives on its own domain: the app at memsprout.com, the MCP server at mcp.memsprout.com, and sign-in/authorization at auth.memsprout.com. The connect guide now shows the mcp.memsprout.com server URL. Existing connections on the old *.workers.dev / *.pages.dev URLs keep working as permanent aliases — the MCP server's OAuth discovery is host-derived, so already-connected agents are unaffected.

2026-06-12 158

Memory types, and tags retire

Every Memory now has a typeDecision, Asset, Fact, or Context — that says what kind of content it holds, shown as a chip on every card and the detail view, and filterable in both your Personal Space and Shared Spaces. Type is auto-classified the moment a memory is captured (by you or an agent via MCP — store_memory takes an optional type), and you can override it. The personal feed now also shows each memory's Topic. With type doing the "what kind of thing is this" job and Topics doing the grouping, free-text tags are retired from capture and the UI.

2026-06-12 156

Rebrand: Vello is now memsprout

A new look and a new name. The product is now memsprout — the shared AI-context layer for teams. This ships a fresh design system (Geist typography, a calm cool-neutral palette with a Moss green accent, and a reserved violet that marks anything captured by an AI agent), a light/dark theme toggle, and a rebuilt component set across every screen. Each Memory now shows quiet provenance — who captured it, you or an agent. New Owner setup: a guided checklist and a space-setup wizard that takes you from zero to a Shared Space with Topics and invited teammates. The product's internal database schema was also renamed end-to-end; existing AI-client connections keep working unchanged.

2026-06-12 147

Fix: upload page now attaches files to memories via MCP-generated links

The /app/upload page now correctly handles ?memory_id= links generated by the MCP tool get_upload_link. Previously, uploading a file through an MCP-generated link would land the file in storage but leave it unattached — no entry in memory_assets was created, silently breaking every AI-client upload flow that relied on the auto-attach contract. Files uploaded via a ?memory_id= link now attach to the memory through the edge function REST API, matching how the memory detail page attaches files. Legacy ?thought_id= and ?insight_id= links continue to work unchanged.

2026-06-12 152

Connect guide: new canonical MCP URL, Claude Code CLI, and mcp-remote instructions

The MCP connect guide on Help and Settings now shows the dedicated proxy URL (vello-mcp.matteo-3bc.workers.dev) as the single canonical server address — replacing the internal Supabase function URL that spec-strict clients like mcp-remote couldn't use for OAuth. Two new connection sections have been added: step-by-step instructions for Claude Code CLI (claude mcp add --transport http) and a ready-to-paste mcp-remote config snippet for clients that only support local stdio servers.

2026-06-12 148

Fix: migration deploy failure for memory versioning and archived-space exclusion

Patches two database migrations from issue #144 that failed to apply. The update_memory RPC was blocked because PostgreSQL treats a parameter-list change as a new overload, leaving an ambiguous GRANT; the fix drops the old 5-param signature before replacing it and uses a fully-qualified grant. The match_memories rewrite was at risk of a return-type-change error (new topic_id column); the fix drops and recreates that function cleanly. Migrations 3–6 from the #144 batch can now apply in sequence.

2026-06-12 144

MCP v2: unified memories surface, legacy thought/insight tools retired

The Vello MCP server now speaks one language: memories. The 17 legacy thought/insight tools are retired (everything they captured has been folded into memories, including records created since the June 9 unification), memories gain full version history with change notes, file attachments now target memories directly, and search/list default to everything you can read instead of personal-only.

2026-06-11 142

MCP proxy Worker: connect via mcp-remote at a dedicated origin

The MCP server is now also served from https://vello-mcp.matteo-3bc.workers.dev — a Cloudflare Worker that proxies every request to the vello-mcp-v2 edge function. This fixes mcp-remote (and any spec-strict MCP client) failing at the token-exchange step with an opaque ServerError: those clients re-run OAuth discovery at the origin root of the server URL, and on *.supabase.co the root /.well-known/* paths belong to Supabase's gateway, so discovery failed and the token request went to the wrong URL. When connecting through the new origin, the OAuth discovery documents and WWW-Authenticate breadcrumb advertise the proxy origin, so every discovery path resolves. Existing claude.ai connectors pointed at the supabase.co URL are unaffected. To connect Claude Desktop via mcp-remote, use the new URL: npx -y mcp-remote https://vello-mcp.matteo-3bc.workers.dev.

2026-06-11 140

Fix: mcp-remote OAuth connection now works with the 2025-11-25 MCP protocol

Adding Vello as an MCP server via mcp-remote was silently failing before the OAuth flow could start. The MCP client validates the server's OAuth discovery document and requires a jwks_uri field — we were omitting it. The discovery document now includes the correct JWKS endpoint, letting the OAuth handshake complete and mcp-remote connect successfully.

2026-06-10 137

Topics: default selection, detail view topic, copy polish

On entering a space, all topic chips now appear selected by default so memories are immediately visible. Memory detail pages now show which topic a memory belongs to, with a one-click control to change it. Removed outdated language throughout.

2026-06-10 135

Fix: spaces backfill in General-topic migration now uses the correct column

Internal migration fix: the backfill query that seeds a General topic into every existing space referenced deleted_at on vello.spaces, but that table uses archived_at for soft-delete. The corrected column name allows migration 000002 to apply cleanly.

2026-06-10 132

Fix: apply migration that enables the General topic feature

Patches the database migration for the General topic (#130) so it applies cleanly. PostgreSQL's CREATE OR REPLACE cannot change a function's return type, so the migration was blocked at apply time — adding is_general to the list_topics_for_space return set hit error 42P13 and rolled the whole migration back. The migration now drops and recreates that function, clearing the blocker and allowing the General topic to go live.

2026-06-10 130

Topics: General topic replaces Unfiled, with spaces backfill and topic management UI

Spaces now automatically include a General topic that catches miscellaneous memories — replacing the Unfiled bucket with a real, named topic. All existing space memories have been auto-filed into General (with a backfill endpoint available to re-run the LLM classifier for better topic placement). The General topic cannot be edited or deleted, appears first in the topic filter strip, and the cap of 20 topics still applies to user-created topics only — General doesn't count. Topic management is accessible directly from the space view via the Topics & Settings link.

2026-06-10 126

Fix: memory rows in spaces are now clickable

Clicking a memory in a shared space now navigates to the memory detail page. The Topics PR (#125) accidentally replaced the clickable link on memory rows with a plain div, so tapping a memory did nothing. The body text on each row is now an anchor pointing to /app/memories/[id], restoring the navigation that existed before the Topics feature landed.

2026-06-09 118

Agents fail loudly when Vello is unreachable

Every agent reads Vello for shared context at the start of a run, but a broken connection (empty/invalid JWT, Supabase down, dead MCP edge function) used to pass silently — the agent just ran context-blind. All 11 Vello-using workflows now preflight in the JWT-mint step: they verify a token actually minted and that the vello-mcp-v2 endpoint is reachable, and hard-fail the run (which posts an in-thread failure notice) on a real outage. A reachable endpoint that returns a 4xx only warns, so transient handshake quirks don't false-alarm.

2026-06-09 116

Fix store_memory crash (activity_log entity_type constraint)

Storing a memory failed for every client with new row for relation "activity_log" violates check constraint "activity_log_entity_type_chk". The unified-memory RPCs log activity as entity_type='memory', but the activity_log entity_type check constraint was never extended past ('insight','thought') when memories were introduced — so every store_memory/update_memory/delete_memory/move_memory aborted. A new migration extends the constraint to allow 'memory'. ⚠️ Apply manually: supabase db push (or run supabase/migrations/20260609000004_vello_activity_log_allow_memory.sql); CI does not run migrations.

2026-06-09 114

Atlas & Prometheus agents can write to Vello memory again

The six GTM (Atlas) and PRODUCT (Prometheus) agent workflows were wiring the Vello MCP server through an mcp_config: input that claude-code-action@v1 does not accept — it was silently dropped, so the mcp__vello__* tools never loaded and those agents couldn't search or store memory at all. They now write the MCP config to a file and pass it via --mcp-config, matching the pattern the core build/review/QA/respond/rework workflows already use. No user-facing UI change; the GTM and PRODUCT agents now actually participate in Vello memory as intended.

2026-06-09 108

Unified memory list

Memories no longer split into "raw" and "titled" categories in the UI — that was an implementation artifact, not a user concept. Untitled captures now display their first ~80 characters as a label, matching how Apple Notes, Bear, and Notion handle untitled items. The Raw/Titled filter tabs, kind badges, and two-mode composer language have all been removed.

2026-06-09 97

Fix blank-content crash in memories backfill migration

The backfill migration that copies insights into vello.memories now handles insights whose body is empty (file-anchored records like uploaded PDFs). Previously the migration failed with a check-constraint violation; it now falls back to using the insight's title as the memory content when the body is blank.

2026-06-09 91

Agents now write to Vello memory on every run

The build, review, QA, respond, and rework agents now store a memory in Vello at the end of every run — not just in exceptional cases. Each agent records a concrete summary of what it did: decisions made, files changed, verdicts given, conflicts resolved, and anything a future agent should know when working in the same area. Agents also search the new unified memories store (alongside thoughts and insights) at the start of each run, so prior context is always consulted. This builds a growing, searchable institutional memory the whole pipeline learns from over time.

2026-06-09 85

Unified memory entity

Thoughts and insights are now a single vello.memories entity. A memory with no title is a raw capture (equivalent to the old thought — personal-only, cheap, unfiltered). A memory with a title is a curated write-up (equivalent to the old insight). The home page composer is now a single-tab MemoryComposer; the feed shows "Raw" and "Titled" filter tabs instead of "Thoughts" and "Insights". Old /app/thoughts/:id and /app/insights/:id URLs redirect to /app/memories/:id once the backfill migration has been applied. Legacy MCP tools (capture_thought, capture_insight, etc.) remain working; the new default tool is store_memory. Four migration files are included in supabase/migrations/ — apply manually; CI does not run them automatically.

⚠️ After merging, deploy the edge function: supabase functions deploy vello-mcp-v2

2026-06-09 78

@product and @gtm now post acknowledgment messages

When you mention @product or @gtm in a GitHub issue comment, those agents now immediately post a "Got it — thinking…" acknowledgment (just like @vello already did), then update that same comment with their full response rather than posting a second one. This means you get a visible signal within seconds that the agent is working, and the thread stays clean with one comment per invocation.

2026-06-08 63

Upload files directly from thought and insight detail pages

You can now attach a new file to a thought or insight without leaving the page. An inline uploader appears in the "Attached assets" section of both the thought detail page and the insight detail page — pick a file, and it uploads and links to the current record immediately, with the attached list refreshing in place. The existing "search to attach" picker for already-uploaded files remains alongside it.

2026-06-08 24

Browser upload link for network-restricted AI clients

A new get_upload_link MCP tool generates a Vello web URL your AI assistant can hand you when it cannot upload files directly — for example, in sandboxed or corporate-proxy environments that block *.supabase.co. You open the link in your browser, drop the file onto the focused upload page, and it is automatically attached to the target thought or insight. No configuration changes required on your end.

2026-06-06 60

capture_thought now returns the thought ID

When you use the capture_thought MCP tool, the response now includes the thought_id of the newly created thought alongside its type, topics, people, and action items — matching the structured JSON already returned by capture_insight and promote_thought. You can use this ID immediately in follow-up tool calls (e.g. promote_thought, get_thought, attach_asset) without a separate lookup.

2026-06-05 56

Vello memory works again across the agent pipeline

The build, review, QA, respond, and rework agents can now actually read and write Vello memory — searching prior thoughts and insights for context and capturing new ones as they work. They had silently lost that ability for two reasons: the MCP server was wired up with a setting the GitHub action no longer recognizes, and the connector it launches was pinned to a version that doesn't exist — so it never started and every memory tool was missing. As a bonus, when you mention @vello its "Got it — thinking..." acknowledgment now appears within seconds instead of after a setup delay, reliably updates the same comment with the final reply, and flips that comment to a clear failure notice if the run crashes.

2026-06-05 54

@vello now acknowledges your message immediately

When you mention @vello on an issue or PR, it now posts an instant "Got it — thinking..." acknowledgment within seconds so you know the agent is running. The agent then edits that comment in place with its final reply, so the thread stays clean. If the agent crashes mid-run, a follow-up failure notice is posted with a link to the action run.

2026-06-05 42

Insight creator attribution

When viewing insights in a shared space, you can now see who created each one — in both the insight list and the insight detail byline. Former members who have since left the space appear as "former member".

2026-06-05 43

Fix: space editors can now update shared insights in place

Space editors who didn't originally create an insight can now call update_insight successfully — version history is recorded and the insight body is updated as expected. Previously the insight_versions RLS policy blocked the version-record insert for any non-author editor, even after ticket #40 fixed the insight row itself, forcing a destructive workaround of creating a new insight and superseding the old one. Note: the workaround applied during the original incident (insight 87e9c1c5 superseded by 3d5d39ee) is not automatically reversed — the new insight is live and fully editable.

2026-06-05 41

File bug reports via MCP

The Vello MCP server now exposes a file_bug_report tool so any connected AI agent can open a GitHub issue in the Vello repo on your behalf — title, description, optional steps to reproduce, and optional context. Issues are filed with the bug label and the tool returns the issue number and URL, so you never have to leave the conversation to report a problem.

2026-06-05 44

Insight breadcrumb links back to its space

When you navigate to an insight that belongs to a shared space, the breadcrumb at the top of the page now reads "← [Space Name]" and links back to that space — instead of always showing "← Home". Personal insights continue to show "← Home" as before.

2026-06-05 38

Auto-trigger rework when a PR becomes conflicting

The build pipeline now automatically detects merge conflicts on open PRs after any push to main. When a PR develops a conflict because an unrelated PR was merged, the pipeline queues rework without requiring a human nudge — as long as the 3-round rework budget has not been exhausted. The auto-rework budget counter is never touched by this automated trigger; only a @vello human nudge can reset it, preserving the runaway-loop guarantee.

2026-06-05 32

Space description visible and editable in Settings tab

Space descriptions are now shown in the Settings tab so all members can see them when they navigate to a space. Owners get an inline "Edit description" button that opens a textarea form — save with ⌘↵ or the Save button, clear the description to remove it entirely. The description is also still shown above the tab strip as before.

2026-06-05 33

Rename Space "Members" tab to "Settings"

The second tab in the Space view now reads "Settings" instead of "Members", better reflecting that it contains both member management and space-level controls.

2026-06-05 30

Pipeline agents now share memory via Vello

The build, rework, and QA agents in the automated pipeline now have a shared Vello account (agents@vello). Before each run, agents search Vello for relevant prior context from past builds. After a build or rework, agents write to Vello when they make a non-obvious judgment call or resolve a tricky error — so future runs can benefit from accumulated institutional knowledge.

2026-06-05 23

Issue-first PR convention

All contributions — including manual, local, or hot-fix PRs — must be backed by a GitHub Issue and linked with Closes #N in the PR body. This gives the automation pipeline the hook it needs to run QA after deploy and track the status:* lifecycle labels. A bare issue ("manual fix: what and why") is enough to satisfy the requirement.

2026-06-05 19

Fix unreadable code blocks in insight bodies

Fenced code blocks and inline code in insight bodies now display with readable dark text. Previously the background was overridden to the light paper cream while the text color was left at the typography plugin's light-grey default, making code near-invisible. Long lines in code blocks now also wrap instead of overflowing the container.

2026-06-04 18

Asset uploads from network-restricted clients

AI agents running in sandboxed environments (such as Claude Code with limited egress) can now upload files to Vello without needing to reach the Supabase Storage CDN directly. POST the raw file bytes as multipart/form-data to /api/upload on the MCP server URL; the endpoint writes the bytes to Storage server-side and returns a storage_path. Pass that path to attach_asset in mode 2 to register the asset and link it to a thought or insight. The existing inline base64 path (mode 3, ≤ 5 MB) is unchanged; the new endpoint handles larger files up to the 50 MB hard cap.

2026-06-04 10

MCP: fetch a single thought or insight by UUID

AI agents can now retrieve a single thought (get_thought) or insight (get_insight) directly by UUID — no search round-trip needed. This closes the gap where an agent holding an id (from a prior search result, a stored reference, or the source_thought_id backref left by promote_thought) had no way to pull the full record. get_insight also returns a version history summary so agents know how many revisions an insight has and what the latest change note says.

2026-06-04 8

MCP search and list tools now show which files are attached to each thought and insight.

When an AI agent searches or lists your thoughts and insights, each result now includes the list of files attached to it — asset id, title, description, MIME type, and kind (image, document, audio, etc.). This closes the loop that was opened in ticket 6: an agent that finds a thought can now immediately see its attachments and act on them (call get_asset for a signed download URL, or detach_asset to remove one) without a separate lookup step. This unblocks the real-world case where a user uploaded an image and asked their AI assistant to find it.

2026-06-03 6

MCP search/list tools now return object UUIDs so agents can act on what they find.

When an AI agent searches or lists your thoughts and insights, each result now includes the object's UUID. This means an agent that finds a thought via search_thoughts or list_thoughts can immediately use its id to attach a file, update, promote, or delete it — without needing a separate lookup. The same applies to search_insights. This unblocks the case where an agent could describe a thought it found but couldn't act on it.

2026-06-02 045

AI agents can move and delete

Connected AI clients gained three tools: move an insight between your personal vault and shared spaces (in place — it keeps its history, versions, attachments, and link), and soft-delete an insight or a thought. Deletes drop the item from search and lists right away and are recoverable by an admin.

2026-06-02 043

Archive a space

A space's creator can now archive it from the space page (with a confirm step). Archiving hides the space and everything in it — including its insights, which stop showing up in search and lists everywhere. Nothing is deleted; an admin can restore it.

2026-06-02 042

A fuller landing page

The signed-out homepage now explains Vello properly: the capture → promote → supersede lifecycle, why it's MCP-native, and how it fits alongside a team wiki rather than replacing it. Terminology is current too — it says "Insights" everywhere instead of the old "Notes".

2026-06-02 046

Deleting insights and thoughts now works

Deleting an insight or thought from its detail page used to fail with a database error. It now deletes cleanly and the item drops out of your feed (and can still be restored). The confirmation prompt was also reworded into plain language.

2026-06-02 044

Inline asset upload for restricted MCP clients

You can now upload files to Vello from network-restricted AI clients — like Claude's sandboxed code-execution environment — that can't reach storage directly. Attach the file inline through the MCP tool call (up to 5 MB); every other client keeps using the existing signed-URL upload, which stays the right path for larger files.

2026-06-01 041

Public changelog page

The page you're reading. Vello now keeps a public changelog, and every shipped change from here on adds a short, plain-language note at the top of this list — so you can follow how the product evolves without reading the code.