- Ingestion reliability — fixed overlapping memory writes and database connection exhaustion during concurrent session capture and conversation imports, which could briefly make MemHub unavailable. Processing now queues safely, retries interrupted work, and limits background database use to leave capacity for everyday requests.
- Artifact browsing — agents can browse beyond the brain Index's first few items and page through an artifact group without guessing a search query. Results stay compact and match the Index's grouping.
- Routine outputs — when a routine's agent has already saved its deliverable, the routine reuses it instead of saving a second copy.
- Rule suggestions — session-based rule suggestions leave the writing to the coding agent that worked on the session, removing an extra model call whose draft was unused.
- Rulebook privacy — checks for personal email addresses and home-directory paths now cover nested trigger conditions and scope fields in session-generated rule suggestions, preventing those details from being copied into shared rules.
Changelog
New features, improvements, and fixes across MemHub and the Memory API.
A pull request shows what changed. MemHub now brings the contributing coding sessions into GitHub, giving engineering teams more context for reviewing AI-assisted work.
The session insights comment brings together decisions, lessons, team rules that fired, and agent effort, with coverage showing which sessions contributed to the report.
To enable it, sign in to Studio as an organization admin:
- Open Connected sources and use the settings cog on your GitHub connection.
- Find Session insights on pull requests, review the visibility notice, and select the repositories you want to enable. Use the search field to find a repository.
- Click Save.
Anyone who can read an enabled repository can read its session insights comment. On a public repository, that means everyone. To stop publishing for a repository, clear its checkbox and save again.
Features7
- GitHub identity — link your GitHub identity to MemHub so pull requests can be attributed to you, including merged PRs that have no linked coding session.
- Memory reading — agents can open a fact, episode, artifact, or ingested document by ID with
read_memory. For long artifacts, they can browse an outline and read individual sections instead of loading the whole document. - Rulebook — rules can block file edits and writes before they happen, with an explicit override reason when an exception is needed.
- Rulebook — read rules can check a file before it enters the agent's context, including reads through shell commands. Available in newer Codex/Cursor plugin releases; the Claude marketplace update is still pending.
- Sessions Insights — compare agent effort by PR type to see how work on fixes differs from work on features.
- Brain overview — an Index lists the brain's artifacts and memory alongside its overview, with authors and dates. Agents can narrow searches by content group or author.
- Managed billing — customers on managed contracts can still manage credits, auto-reload, payment cards, invoices, and usage themselves, while the account team handles contract terms.
Improvements15
- Sessions — linked PRs appear across List, Lanes, and session details, with a popover for sessions that contributed to multiple PRs. A PR opened by the agent links automatically; use
/memhub:link-prto link a PR manually. - PR linking — the Linked PR column explains how linking works. Use
/memhub:find-contributing-sessionswhen several sessions contributed to the same PR. - Sessions performance — changing filters avoids duplicate requests and background reads for hidden tabs. Narrower date windows can reuse a complete cached wider window, reducing the wait for results.
- Rulebook — click the rules icon in the Sessions list to open that session's rule activity history.
- Transcripts — rule markers show the turns where rules fired. Click a marker to open the rule's details, or use the transcript's jump control to move between rule events.
- Brain overview — refreshed overviews link topics to the artifacts behind them. The Index keeps exact counts and a compact list of recent items, reducing the context an agent needs before opening a document.
- Credits — enter a custom credit-purchase amount and preview the credits before continuing to checkout.
- Auto top-up — review the trigger balance, refill target, and spending limit before enabling it. Auto top-up stays off until you save, with clearer validation and cost explanations.
- Session outputs — organization admins can open deliverables produced by a teammate's session.
- Rulebook — fire history supports grouping and ordering, and Summary shares the same period, engineer, repository, and rulebook filters.
- Rulebook — statistics distinguish rules presented at session start from rules that matched an action, so exposure no longer inflates fire counts.
- Rulebook — running sessions refresh their cached rules more frequently, and paused or superseded rules explain when cached copies may still apply.
- Artifacts — HTML deliverables are saved as file bundles with searchable text. Long artifacts can be read in pages, and saving identical content in the same brain reuses the existing artifact.
- Capture — markdown deliverables written through Bash can be captured as draft artifacts too. Available in newer Codex/Cursor plugin releases; the Claude marketplace update is still pending.
- Memory billing — new memory usage is billed from measured model and embedding costs instead of fixed per-operation estimates. Historical usage retains its existing calculation.
Fixes11
- Sessions storage — the session cache no longer fills the browser storage shared with other Studio settings. Cached sessions are stored once, with a size limit, and the old cache is cleared on load.
- Rulebook — the activity count on a session matches the history opened from its rules icon, so the badge and ledger no longer show different totals.
- Sign-in — a failed sign-in callback now shows an error and asks you to try again instead of failing silently.
- Billing — subscriptions set not to renew show when access ends, rather than suggesting another invoice is coming.
- Routines — goals referring to "me" retain the identity of the person who requested them when the routine runs later.
- Documents — reading copied documents preserves page boundaries and avoids repeating text where adjacent chunks overlap.
- Sessions — date windows include sessions active during the selected period, even if they started earlier, keeping List, Lanes, and Summary aligned.
- Transcripts — authors can open their post-migration transcripts and see the tools used in those sessions again.
- Rulebook — result rules inspect both the beginning and end of long outputs, so errors near the top are no longer missed.
- Rulebook — empty filters, grouped counts, pagination, and "show all" actions behave consistently. A rule with no fires in the selected period no longer misleadingly says "never."
- Capture — captured facts reconnect to their source episodes when processing finishes later.
Security3
- GitHub identity — organization admins can revoke an identity link, and leaving the organization clears it so rejoining requires a fresh link.
- Session outputs — admin access stays bounded to the selected session; consolidated memory drawing on the author's other sessions remains protected.
- Billing — paid access is checked against verified payment and subscription state, and stale payment events cannot restore access or grant credits twice.
Rulebook
MemHubEvery team has rules its agents keep breaking: never force-push, always run the migration check, leave the generated client alone. Rulebook is where those live. A rule is written once, filed in a rulebook, and reaches every agent session through the coding-agent hooks — so the convention shows up in the work rather than in a document nobody opens.
A rulebook is the unit of policy, and its membership is its scope. That separates who is bound by a rule from who can read a brain, so an org-wide standard and one team's local convention are the same kind of object with different audiences. Anyone added to one is told, and given a way out.
Rules have a life. They are proposed, activated, paused, dismissed, retired, or superseded by a newer rule that names exactly which one it replaces — so the list stays the rules you actually follow, not an archive of everything anyone ever suggested.
Fire history is the half that makes it honest. Every fire links back to the session and the message where it happened, so you can see which rules earn their place and which are just noise. Filter to Applies to me and you get the answer an engineer actually wants: what is enforced on me, and what has it done.
Features8
- Brain overview — a brain detail page opens on its auto-compiled Overview, the generated one-liner appears in the header, and you can ask MemHub to rebuild the overview on demand.
- Routines — a routine's goal and schedule are editable from the detail page and from the anatomy card, without deleting the routine or losing its run history.
- Brain sharing — share a brain with every active member of a workspace in one action, from Studio, chat, or MCP, instead of granting each teammate one by one.
- Session detail — the Transcript tab renders a parsed session-gist preamble instead of burying the gist as a raw memory card.
- Rulebook — a shell-command rule can block instead of advise: the agent's command is refused with the rule's reason attached, and
RULEBOOK_OVERRIDE='<why>'is the deliberate way past it. Only a rulebook or org admin can arm one, because a gate stops every teammate's agent. - Rulebook — a rule that fires is surfaced in the session where it happened, rather than only showing up in the ledger afterwards.
- Rulebook —
/memhub:rules-from-sessionsproposes rules from what your team already does: it reads the repo's CLAUDE.md and your Claude Code, Codex, and Cursor transcripts, replays every candidate through the real hook, and states each proposal's origin, its cost, and what changes with it on. Survivors are filed as proposed; nothing is activated for you. - Capture — a markdown deliverable an agent writes is saved as a draft artifact when the session stops, instead of living only in the transcript.
Improvements16
- Connected sources — the Sources page answers what this teamspace is actually granted — granted here, not granted here, org-wide, or unknown — with counts like repos, pages, teams, and channels.
- Connected sources — Slack, GitHub, Notion, Linear, and HubSpot management share the Studio sources route shape and page shell, with clearer manage actions and fewer legacy organization-settings pages.
- Brains — Shared with me is grouped by who shared the brain rather than by your own folders, so the tab loads one real section per sharer instead of many empty folder reads.
- Brains — the Brains grid uses one shimmer loading front across folders, sections, and probes, so cards stop appearing in a waterfall as the page settles.
- Routines — schedule prose is served in the reader's timezone, so the anatomy line, the badge, and the picker no longer describe one routine as running at two different times.
- Sessions — long Transcript and Memory pages keep a compact sticky header with the session title, author, and back action after the original header scrolls away.
- Usage digests — digest emails drop the streak, busiest-day, and peak-hour rhythm lines, so the email body is quieter.
- Code execution sandbox — the Python runtime available to model-written code moves to pandas 2.3.3, scipy 1.18.1, and reportlab 5.0.1, re-verified against the same runtime probes as the previous bump. pandas keeps the 2.x semantics your code already relies on, and reportlab's canvas, image-reader, and table paths are unchanged.
- Performance — database connections are pooled in front of the pooler and released before long streams begin, so concurrent requests no longer serialize behind fresh connection setup or chat and file streams.
- Rulebook — an edit rule sees files a Bash command wrote, so a heredoc, a
write_text(), or ased -iis matched the same way a direct edit is. - Rulebook — a rule can scope itself to the repo and the person it applies to, with
givenconditions, path scope, and fixtures that verify it fires where you meant it to. - Rulebook —
/memhub:create-ruleproves a new rule actually fires before filing it, and checks it against the rules already in the book, so a duplicate or a contradiction is caught at authoring time. - Rulebook — you are told when your team's rules stop reaching your agent, instead of the hook going quiet and the rules silently not applying.
- Capture — a tool result too large for any request the server will accept is elided rather than failing the capture.
- Cursor — captured turns carry real per-turn timestamps, pinned when the turn is first observed, so a Cursor session's timeline reflects when the work happened.
- Install guides — the Codex setup documentation replaces the legacy MCP instructions.
Fixes9
- MCP server — a refused tool call says what to fix, instead of reaching the caller as a bare
Error executing tool. - Brains — a brain filed in another teamspace's folder no longer disappears from the current teamspace; it renders exactly once, in the matching folder or in Uncategorized.
- Storage — legacy Sessions cache entries are purged on load, freeing localStorage that could otherwise make unrelated UI preferences, like collapsing Shared-with-me groups, silently stop saving.
- Rulebook — plugin-facing rulebook routes accept personal access keys, and a JWT call without
X-Org-Idresolves the caller's org instead of silently serving no rules to installed hooks. - Rulebook — an over-long rule pattern is refused at authoring time instead of being stored and then silently dropped by the hook, and fire history can be filtered by session id.
- Rulebook — adding yourself to a rulebook no longer sends you a redundant "you were added" notification, while org-wide scope changes still notify the people newly bound by the policy.
- Slack — @MemHub answers use the same run path as Studio, format for Slack's mrkdwn, and say when a scope gap or a run failure prevented an answer instead of falling back to a plausible but worse response.
- Rulebook — a gate has no freshness timer: the cached rulebook is the book, so a blocking rule cannot lapse into advice because a refresh arrived late.
- Rulebook —
RULEBOOK_OVERRIDEis recognised at the start of the blocked command, so the documented escape hatch works where you actually type it.
Security4
- Sessions — transcript access is no longer inherited from brain grants: members see their own sessions, org admins see the org's sessions, and a brain viewer no longer gets a teammate's transcript or session metrics just because derived memory lives in that brain.
- Slack — hosted web search is an explicit surface-policy decision rather than an accidental bypass of the function-tool allowlist, so future hosted tools have to be classified at the one seam that can withhold them.
- Brain sharing — workspace sharing creates explicit per-user grants as a snapshot, and does not reintroduce workspace membership as implicit brain access.
- Rulebook — the rule-relevance judge no longer receives credentials from the session it is judging.
Lanes, zoomed in
MemHubLanes could already lay a week of agent work out over time. It can now be
interrogated. ⌘ + scroll zooms the track and dragging pans it, so the same view
goes from a week at a glance down to what happened inside a single hour, without
changing filters or leaving the page.
Hovering a session splits its elapsed time into run and wait — wait being the gaps between spans, the idle that agent hours deliberately exclude. That is the difference between a session that took four hours and one that worked for four hours, and until now it was invisible.
Clicking an engineer's avatar opens a sheet for that person over the current window: occupancy, average and peak concurrency, sessions, turns, agent hours, tokens, and cache read rate. If you are trying to work out how your team actually uses agents — where the waiting goes, who runs work in parallel — that is the question Lanes now answers.
The figures stay honest about their own limits. When the window holds more sessions than the pool can draw, or turns and tokens cover only part of it, the footer says so instead of quietly showing you a smaller number.
Improvements12
- Session detail — the page is rebuilt around Transcript, Activity, Memory, and Contents tabs, with memory cards linked back to the episode that produced them and memory filterable by episode.
- Session detail — Transcript is the default tab, tab bodies stay mounted so switching does not re-fetch, and the page can idle-warm instead of popping sections in one at a time.
- Sessions — Summary does less hidden work at startup: inactive tabs wait for the active one to warm, the KPI-before-chart hop is gone, and duplicate session reads are reduced.
- Sessions — Summary rows and KPI tiles speak the same population language, separating measured from started sessions and averaging against the matching denominator.
- Sessions — the Summary PR tile and the List and Lanes linked-work column honour the GitHub availability flag consistently, instead of leaving half the GitHub UI switched on.
- Sessions — List views grouped by engineer say when their counts are page-scoped at the 200-session cap, matching the honesty Lanes already had.
- Sessions — lane backgrounds paint real local dawn and dusk rather than phasing off the current window, and day ticks across a DST boundary no longer repeat or drop a day.
- Connected sources — a reconnect can offer to restore what was lost as soon as OAuth returns, rather than relying on a passive banner someone may never scroll to.
- Connected sources — when a provider handoff never comes back, the Sources page explains what was attempted and offers a retry instead of claiming a failure it cannot know happened.
- HubSpot — revoking a refresh token treats "already gone" as success and retries transient failures, leaving fewer stale installs that dead-end the next connect.
- Usage digests — KPI deltas are neutral grey in both directions, so a quiet week is not coloured as a failure and a busy one is not graded as a win.
- Install guides — the Cursor and host-plugin setup docs match the current Agents view, source states, and shared capture command.
Fixes8
- Sessions —
active_secondsis an uncapped aggregate, so a long session over the span payload cap no longer reports one agent-hour figure in List and a larger one in Insights. - Sessions — a session whose capped page never reaches its first turn records its scalar activity as unknown rather than implying a measured zero.
- Brains — Slack notification links point at
/studio/brains/{id}instead of the removed/cbs/{id}route. - Slack notifications — a brain name containing a line break no longer breaks the link or the bold span around it, while ordinary spacing is preserved.
- Sources —
/studio/sourcesno longer crashes when an early return changes the hook count after a connect attempt. - Connected sources — a successful provider return no longer races the abandoned-connect notice and wrongly reports that the connect never finished.
- HubSpot — a second disconnect no longer warns that revoke failed when HubSpot is saying the token is already gone.
- UI polish — the GitHub provider icon is visible in dark mode, and the Skills and Routines navigation icons use their intended glyphs.
Security1
- Code execution sandbox — Pillow is updated from 11.0.0 to 12.3.0 in the agent jail, closing 17 published vulnerabilities (12 rated high). The affected image-handling paths are reachable from model-written code, and the upgrade was verified against the runtime surface that code actually uses.
Usage digests
MemHubUsage digests turn the questions you'd otherwise ask ad hoc into something that arrives on its own. Each one carries your own activity and, if you're an admin, the team's — sessions, turns, tokens, and the brains being read — measured against the previous period so a change reads as a change.
Drop-off signals call out the people and brains that went quiet, which is the part you'd never think to go looking for.
Settings → Notifications is where you own it: turn digests on or off, choose daily, weekly, or monthly, include the team section when you're an admin, and send yourself a test digest before committing anyone else to it. Unsubscribing remembers your cadence and channels, so coming back doesn't mean setting it up again.
The new Sessions
MemHubSessions has been redesigned around the fact that there's no single right way to look at a week of agent work. The new interface carries three views — List, Lanes, and Summary — and you move between them without losing your place or re-asking your question.
They share one set of controls. Filter the work down once and every view follows. Change the time grain and the charts re-bucket to match. Group by what you're actually asking about, and the rollup regroups with it.
List is the feed of individual runs. Lanes lays activity out over time. Summary rolls the same work up into totals.
Features5
- Integrations — disconnecting a source tells admins what routines and access will break before they remove it, disables dependent routines honestly, remembers the grants that were destroyed, and offers to restore routines and access when the source is reconnected.
- Slack — MemHub can now infer "send this to a teammate" from natural wording like "let Felix know…", and asks you to confirm before it DMs anyone under the recipient's grants. This replaces the send-without-confirmation behaviour announced on 2026-08-12; an explicit
@MemHub dm <teammate>still sends immediately. - Routines — an agent routine can post to a Slack channel instead of DMing every member.
- MCP server —
add_directivelets a client author a directive outright instead of waiting for extraction to notice a rule, and task-start recall can serve procedure memories before a task begins. - Terms — Studio shows a Terms-of-Service update notice, collects re-consent, and switches from a dismissible banner to a required modal once the terms take effect.
Improvements13
- HubSpot — connecting grants the default workspace and queues the first import, so a newly connected CRM is usable without a separate "Import" step.
- HubSpot sync — unchanged records skip re-ingestion while still stamping
last_synced_at, making shorter refresh cadences affordable when nothing has changed. - Connected sources — disconnect warnings use product language like "Linear teams," "repositories," and "Notion pages" instead of internal grant-table vocabulary.
- Connected sources — dependent-routine warnings always name routines a human would recognise, collapsing generated fallback names so the dialog stays readable.
- Connected sources — disconnect warnings say the app is still installed on the provider and that the next connect may fail until you remove it, and HubSpot's names the exact screen to remove it on.
- Sessions — sessions from Cursor and Codex carry their own platform badge.
- Sessions — time charts support minute grains and a calendar-month grain, and cap buckets based on chart size rather than a fixed 92-day window.
- Sessions — Summary can group a named engineer selection by user, with full turns, tokens, tool calls, agent time, and PR metrics in one read.
- Usage digests — subjects name the reporting window, daily digests drop the one-bar chart and the "active 1 of 1 days" line, and your own empty activity is hidden without removing the team section.
- Usage digests — unsubscribing preserves your cadence and channels, so re-subscribing returns you to your previous schedule instead of resetting to weekly.
- Usage digests — notification settings use the app's themed toasts and silently correct your UTC offset on load.
- Brains — a capped brain manifest says
5000+ factsrather than presenting a truncated enumeration as an exact count. - Slack — inferred relays show the model teammate names rather than Slack ids, resolve the recipient server-side, and say so plainly when the intended teammate is ambiguous.
Fixes24
- Sessions — Summary and Lanes count sessions, turns, agent hours, tokens, and PRs from the workspaces where session turns actually live, so the list and the aggregate no longer disagree by an order of magnitude.
- Sessions — Studio chat, MCP
add_memory, team message ingest, and imports stampevent_datewhere available, so more sessions become measurable instead of showing turns with no tokens or agent time. - Sessions — empty session shells are hidden from the feed by default, matching the population the aggregates use.
- Sessions — Lanes draws its day and night bands on the viewer's own calendar day, so overnight work no longer appears in the daylight band.
- Session detail — the transcript is the flat message view again, and Contents reveals its sections together rather than one at a time.
- Session detail — memory routes retry into the session's brain partition when a
conv_idread would otherwise return an empty page from personal LTM. - Session detail — facts are linked back to the episode that produced them, lifting conversation-memory provenance from roughly two thirds of linkable facts to almost all of them.
- Routines — a brainless routine with outbound delivery can fire on GitHub and Linear events instead of only working from "Run now."
- Routines — a brainless routine lands in a workspace that actually holds the GitHub or Linear grants it needs, rather than the org default.
- Routines — malformed config in one routine no longer aborts the event fan-out for its siblings.
- Routines — anatomy generation clamps near-miss copy length and outcome counts instead of discarding the whole card when the model overshoots by a few characters.
- Routines — chat-authored goals tell the model who the caller is, so "my decision" isn't rewritten to the wrong teammate.
- Brains — creating a private brain on Pro and Free no longer fails by trying to home it in a plan-forbidden personal workspace.
- HubSpot — OAuth connection sends
tokento HubSpot introspection instead ofaccess_token, fixing installs that failed asmissing_hub_id. - Integrations — GitHub repo grants are counted in disconnect previews, and routines without names get usable labels instead of
(unnamed)orNone. - Integrations — deleting a CRM integration cleans up the documents only that integration authorised, leaving sibling-connection content alone.
- Onboarding — invited admins see onboarding, and the tour is no longer spent before it appears or skipped because a desktop window is narrow.
- Terms — a pre-ticked consent box can no longer record re-consent to terms you didn't read.
- Terms — the notice banner no longer blocks clicks across the full bottom of the viewport outside its visible card.
- Connections — the OAuth landing no longer drops a parameter it needed or reports an error that didn't happen.
- Account — the terms flow no longer requires a
/settings/exportstep, and the dead email link that pointed at it is gone. - Digests — a test send covers the last N days rather than the last closed period, and preheaders stop advertising personal activity the recipient won't find in the message.
- Scheduler — housekeeping loops wait for schema readiness before their first tick and retry a failed maintenance tick after five minutes instead of sleeping for the full cadence.
- Imports — NUL-bearing agentic transcripts no longer kill pending-record appends.
Security3
- Slack — relay confirmation buttons fail closed when
SLACK_SIGNING_SECRETis unset, so Studio never shows a button whose click can't be verified. - Slack — relay confirmation payloads are signed rather than trusted from mutable button values, so a forged recipient or question can't become a DM.
- HubSpot — introspection failures log allow-listed diagnostics only and scrub the access token, preserving the useful error without leaking the credential.
Sessions
MemHubSessions is the record of how your team's agents actually work. Every run in one feed, a turn-by-turn transcript for any of them, and Insights rolled up by engineer.
Each run shows who ran it, how long it took, the tools it called, the tokens it spent, and the memory it read. The questions the agent stopped to ask show up as decisions with the answer attached, not as another tool call. So you can tell whose process is working and where token spend is going to work already done. Understand whether an engineer is getting genuinely proficient with agents or just running more of them.
Linear for your org
MemHubLinear used to be a personal connection: a routine that filed an issue filed it as the person who created the routine, and it reached whatever that person could reach. An admin now installs Linear once for the organization and grants access team by team, so an unattended routine acts as the org's MemHub app — scoped to the teams you granted it, and attributable to the automation rather than borrowed from someone's account.
Linear webhook events are supported too, so a routine can run on the issue lifecycle — an issue created, a status changed — or on a new comment, instead of waiting for its next scheduled tick. Personal Linear connections still work exactly as they did.
Features11
- Onboarding — invite teammates during setup, price the whole invite batch before sending, pick your client, and get a tour that forks for Claude Code and Codex engineers versus everyone else.
- Invitations — send up to 50 invitations at once, with per-address results and a seat-add preview for the batch.
- Brains — a brain's Contents tab lists the sessions it holds, cards carry a sessions count, and the feed names the brain a session lives in. This is the one cross-user list: in a brain you can view, you see every member's sessions, each row naming its author.
- Routines — author a Linear trigger from chat, scoped to a team.
- Routines — read GitHub from a routine: granted repos,
staging/maincommit history, pull requests, and repo files. - Routines — schedule one with no brain attached, as long as it delivers to Slack or email.
- Routines — select more than one skill when you create one.
- CRM sync — HubSpot records refresh on a schedule instead of waiting for a manual re-import.
- Sources — request a connector we don't support yet from the Add source modal, and the request is kept so the demand gets counted.
- Chat — the composer takes Office documents and folds the extracted text into the message rather than rejecting the file.
- Slack —
@MemHub dm <teammate> …answers under the recipient's brain grants, and their answer goes to them alone — it's never echoed back to whoever asked. It sends without a confirmation step.
Improvements12
- Routines — Linear and GitHub event triggers debounce per routine and object, so a burst of activity is one run rather than a storm of duplicates.
- CRM Manage — the sync bar shows the last successful import and the earliest next automatic refresh, instead of grant creation time or a claim that sync is manual.
- GitHub — repo grants show the branch being tracked and drop the code/issues/PR toggles that never did anything, matching how ingestion actually works.
- Sources — clearer header actions, a "How to use" guide, safer handling of org versus private sources, and tab state that survives a reload.
- Brains — cards count the people a brain is actually shared with, rather than everyone in the workspace.
- Brains — the detail header and share flow add keyboard shortcuts, a clearer list of who has access, invite/revoke/permission changes, and safer disabled states while grants reload.
- Brains — leave a brain someone shared with you, from the card menu.
- Sessions — the Insights engineer picker offers every org member, including idle teammates and people past the first page of the roster.
- Sessions — the page header says what the surface is for in one sentence, whoever you are, with the role badge carrying the admin/member distinction.
- Studio — the sidebar shows a profile mark derived from your org instead of the same hardcoded "X" for everyone.
- Website — shared links describe XTrace MemHub as "Team memory for coding agents," with a refreshed social card.
- Chat — CRM answers put table rows on their own lines, so they're readable.
Fixes22
- Studio — the task board filters out
add_memorycaptures, so it lists tasks someone actually started rather than empty imported rows. - Sessions — turn counts, spans, and metrics count messages in the workspace where the session's turns really live.
- Sessions — Insights counts sessions scoped to a brain, session memories read from the partition they were saved in, and a late-arriving title becomes the session name.
- Sessions — a deleted brain's label no longer breaks transcripts, metrics, org drill-ins, or PATCH echoes; stale labels fall back safely.
- Sessions — activity lanes stay visible when work happens inside the selected window, even if the session started before it.
- Brains — deleting a brain no longer breaks its conversations; the merge-back and delete-only paths relabel or remove them consistently.
- Brains — removing a brain-owned fact retracts it rather than erasing it, and the UI no longer offers recovery it can't perform.
- Brains — "remove from this brain" accepts the documented
cb_idscope for facts, episodes, and artifacts instead of failing validation before the handler runs. - Routines — Linear teams can be named the way you'd name them, while the guard resolves handles to live team ids before authorizing any write.
- Routines — Linear dispatch deduplicates by the change itself, avoids self-trigger loops, and rejects conditions it doesn't support rather than ignoring them silently.
- Code review — a transient GitHub 429, 5xx, or rate-limit blip no longer fails the whole review when it can retry.
- GitHub — Connect repositories no longer sends removed grant fields, which the backend was rejecting with a 422.
- Invitations — a batch recovers per address after a database failure, keeps invitation tokens out of the logs, handles blank addresses one at a time, and caps email fan-out.
- Billing — the seat-add preview clamps fallback proration between 0 and 1, so a Stripe outage can't produce a negative charge or a more-than-full-period quote.
- People — admins no longer get a role control that would demote them from their own org.
- CRM — a successful import at grant time stamps
last_synced_at, so the scheduler stops immediately re-importing data it just fetched. - CRM — availability checks follow the caller and the workspace that will use the CRM, not the brain's home workspace.
- Slack — task deliveries no longer fail silently, and linking errors point at the setup path that works.
- Ingest — document RAPTOR work runs off the API event loop, and a non-string id no longer breaks the drop-mark path.
- MCP server — the SDK 2.0 migration fixes camelCase/snake_case misses in production, and
recall_directivesreads the agent brain partition. - Chat —
save_resultandsave_to_agent_braincan write to a brain created earlier in the same turn. - Deploys — a busy agent-jail Lambda no longer silently cancels the staging deploy.
Security5
- Routines — Linear issue and comment text is fenced with per-call nonces and recursive delimiter stripping before it reaches an agent holding org write credentials.
- Routines — PR bodies, commit messages, and other GitHub-authored text go through the shared hardened data fence instead of the older escapable marker stripping.
- Routines — org-identity Linear writes are limited to granted teams, capped per run, and audited without storing argument values.
- Routines — repo, branch, path, and truncation guards keep GitHub reads bounded, so a path or ref can't pivot a read into broader repo access.
- Dependencies —
cryptographyis updated to 50.0.0 for CVE-2026-69247. Our usage never reached the vulnerable PKCS#7 path, but the patched version now ships.
Personal access keys
MemHub + APIIf you're building your own agent, you can now authenticate to MemHub with a personal access key instead of the interactive browser login a headless loop can't do. Mint one with a single API call, drop it in an environment variable, and point any MCP client — or a plain HTTP call — at MemHub as yourself.
A key acts as you, at one seat's throughput — so it's a teammate, not a firehose for a multi-tenant app. You can scope a key read-only, hold several at once (mint a new one and revoke the old to rotate without downtime), and revoke any of them instantly. It drives MemHub's own memory over the MCP server or the REST API, and can mint and manage your Memory API keys — read the guide.
As a team fills MemHub with brains, finding the right one shouldn't mean scrolling. The brains page now has stackable filters — narrow by who owns a brain, who it's shared with, its category or status, or when it was created or last updated — and sorts on any of those.
Lay them out however you work: a compact List, a Board of cards, or Sections grouped by folder, with drag-and-drop to move a brain into a folder right from the list. The layout you pick sticks between visits.
HubSpot
MemHubIf the context your team works from lives in HubSpot, your agents have been working without it. Connect a HubSpot account from Integrations and its Contacts, Companies, and Deals become something an agent can read in chat — and write back to — rather than something you paste in by hand.
Routines can use the CRM too — reads only, and opted into per routine rather than inherited, so a routine can't reach your CRM by accident.
Features8
- Dark mode across Studio, the developer portal, and the changelog — follow your system theme or pin it light or dark.
- Routines — create one by hand, with or without a brain to work against.
- Routines — the pull-request trigger asks which repo, scoped to the workspace.
- Docs render in-app at
/docs, including a full personal-access-key API reference. - A repo-owned changelog at
/changelog, backfilled to April. - What's new in the sidebar profile menu, flagging releases you haven't read.
- Press
Con Brains, Routines, or Skills to create one. - Installation guide — a tab per client, so the setup you copy matches the tool you use.
Improvements6
- Routines — filter on trigger type and enabled state, and sort on when each last ran.
- Brains — a brain's updated time now reflects changes to what's inside it, not just edits to the brain itself.
- MCP server —
recall_directivestakes asession_idand holds back directives that same session just wrote, so an agent stops rediscovering its own output. - Per-turn conversation capture no longer shreds episode boundaries — a client can ship each turn as it happens and still get one coherent episode.
- Billing — credit history filters by date range and carries totals.
- Retrieval quality — self-echo filtering, anchor junk filtering, and anchor candidate selection.
Fixes5
- Chat — what the agent says it can do comes from its tool list, never from something it remembered.
- Explore — the catalog no longer claims it's empty before the list has loaded.
- Brains — creating a section says up front that sections are private.
- MCP server — the 401 challenge advertises the MCP endpoint rather than the mount root, so clients retry against the right URL.
- Docs — code blocks are readable in light mode.
An agent that has to guess halfway through a task usually guesses wrong. Runs can now suspend, ask you a question, and resume from the same place once you answer — so a routine that needs a recipient, a date, or a judgment call stops and asks instead of inventing one.
Questions render inline in the conversation and accept multiple selections where the answer isn't one-of. Anything waiting on you is flagged on the Studio board and badged in the nav, so a suspended run doesn't sit unnoticed.
Starting from an empty workspace is the hardest part of adopting MemHub. Explore is a curated catalog of skills and routines you can add in one click — and when an entry needs a brain to work against, adding it creates that brain for you.
Catalog entries carry their own setup: routines that run on a schedule get a real schedule picker, and ones that email a teammate get a recipient picker. Browse by category to narrow it down.
Buy compute credits up front, with auto-reload
MemHub + APIYou can now buy compute credits up front rather than settling overage after the fact, and set auto-reload so a long-running agent doesn't stall mid-task. Auto-reload takes a monthly cap, so topping up automatically can't run away from you.
Memory API usage now reconciles into the same credit balance as MemHub — one number for both products instead of two meters to reason about. Credit purchases appear on your invoice, and the top-up history is filterable by date range.
Features7
- Copy facts, episodes, and artifacts from one brain into another.
- Brain document upload accepts PPTX and XLSX.
- Routines can set their own email subject.
- Salesforce and HubSpot connect cards appear in Integrations, marked "Coming soon".
- MCP server — Otter.ai joins the connectable providers.
- MCP server —
send_emailsends you an email from a conversation. - Billing — credit-history aggregation with date-range filtering and sorting.
Improvements10
- Brains list gets Linear-style filtering and folder-aware pagination.
- Chat can reach every brain you have access to, not just the one selected — routing picks the right brain before searching rather than searching all of them.
- Agent tool bursts collapse into a single activity block instead of a wall of rows.
- A routine's compiled anatomy is visible from its description.
- Guided tour through Studio after onboarding, and a single new-brain modal that creates the row before launching the agent.
- Nightly brain-dedup sweep now runs through the OpenLake SLM.
- MCP server —
list_skillsandget_skillare available in chat, so the agent stops guessing skill names. - Artifact deliverable manifest is exposed on the REST surface.
- Billing — auto-reload state, including the monthly cap, is returned on the payment-method read.
- Metered API-subscription machinery is retired in favour of unified credits.
Fixes4
- Brains — markdown deliverables are readable in dark mode; artifact views read the stored deliverable rather than its description.
- Chat — a just-attached image previews again (CSP was blocking
blob:images); attachment filenames no longer print twice under their own thumbnail. - Studio — no "working" spinner while a run is actually awaiting your input.
- Sources — the MCP connect callback lands on Connected sources instead of a retired route.
Studio
MemHubStudio replaces the portal surfaces MemHub grew piecemeal over the last few months. Brains, routines, skills, and the work your agents are doing now live in one place, on one board, instead of being scattered across pages that each knew about a different part of the system.
The retired surfaces are gone rather than deprecated, and old bookmarks redirect instead of 404ing.
Steer a running agent
MemHubWatching an agent head down the wrong path and having to stop it, rewrite the prompt, and start over is the most wasteful thing in agent chat. You can now steer a run while it's happening: type the correction into the composer and the agent takes it from there, keeping everything it has already done.
A steered turn renders as what it actually is — the response so far, your correction, then the continuation — and it survives a reload in that same shape. Runs are resumable, so closing the tab no longer kills the work.
One meter: compute credits
MemHub + APIMemHub used to meter messages, runs, and API calls separately, which made it impossible to answer "what is this costing me?" without adding up three numbers. There is now one meter: compute credits, with an itemized spend log showing what each run consumed.
Overage is card-gated rather than surprising, Pro and Scale no longer cap members (only Free does, at 5), and the Free plan's agent-brain limit went from 3 to 15. Annual billing is two months free — the old "20%" copy was wrong.
Features8
- Routines can be triggered by GitHub pull requests — fire an agent routine when a PR opens or merges, and the run gets the actual PR title, body, and files.
- Routines can act inside connected MCP services.
- A routine no longer requires a skill — goal-only runs work.
refresh_brain_overviewregenerates a brain's overview on demand.- Billing — an itemized compute-credit spend log, including
run_kind. - Billing — the referral bonus is paid as a compute-credit grant on the referee's first paid invoice.
- MCP server —
get_skill_filedownloads a shared skill's bundle files. - Terms of Service acceptance is tracked server-side and consented at signup.
Improvements6
- Routines get a first-class enable/disable toggle and a human-readable name instead of "agent routine".
- Brain discovery is folder-aware and time-aware.
- The workspace-wide skills list resolves in a single query.
?include=runon the conversations list returns chat-run status.folder_idfilter on the team brain list (eq.<uuid>/is.null).- Seat subscriptions expose billing cadence (monthly/annual) and
member_limit.
Fixes4
- Chat — an in-flight resend returns 409 instead of colliding on the user row; team chat no longer 500s on leftover message-limit code.
- Billing — a retried checkout mints a fresh session rather than reusing a stale one; card updates work again in setup-mode checkout; Stripe failures keep CORS headers.
- Brains — folder membership is canonicalized on root ids, and folder search is tenant-scoped.
- Code review — one review routine per repo, and findings post as inline comments individually.
Security1
- API keys — members can create their own keys, but revoking stays restricted to owners.
A rebuilt chat
MemHubChat has been rebuilt from the composer up. Every tool call the agent makes now renders — not just code execution — and reasoning streams as the agent thinks rather than appearing after the fact. Reloading a conversation replays it in the order it actually happened, text then tool then text, instead of collapsing into a summary that didn't match what you watched.
You can attach images and PDFs to a message and the model sees them in the same turn, with an explicit tool for keeping an attachment in a brain rather than having it silently vanish when the conversation ends.
Routines get a home
MemHubRoutines were authorable from chat but invisible afterwards. They now have a proper section: the list, each routine's detail, and the history of every run it has made.
Routines also got more capable this release. They can pull from the web while they run, produce binary file deliverables rather than just text, and attach those files to the email they send you.
Features12
- Brains get a generated overview, refreshed nightly and debounced against content changes.
- A per-brain activity log, exposed at
GET /v2/cb-activityand documented in OpenAPI. - Skills can carry binary brand assets — logo, font, template — inside the bundle.
- REST CRUD for team skills at
/v1/team/skills. - Collection CRUD and the developer surface are ported into MemHub at
/v1/developer. - MCP server —
search_brainsroutes across brains over manifest embeddings. - MCP server —
search_all_brainssearches items across every brain you can reach. - MCP server —
get_brain_overviewreads a brain's generated overview. - MCP server —
delete_skill, plus a refresh mode onadd_skill_to_brain. - MCP server — edit access for agent brains: share upsert and listing.
- MCP server — Linear, Apollo.io, Calendly, and Ahrefs join the connectable providers.
- Native
GET /mem-manager/usage/summary, and self-serve management for the API subscription.
Improvements3
- OCR'd documents are chunked one chunk per page, so citations point at the right page.
- Agent brains show who shared them and when.
- Personal orgs are retired; MemHub is team-only.
Fixes4
- Chat — files produced inside a turn resolve when saving; saving works in brain-less chats; NUL bytes no longer break persisted tool payloads.
- Notion index — in-flight builds resume after a worker dies and cancel cleanly on shutdown, instead of running concurrently.
- Brain digest — object-shaped decision items render as prose, not raw JSON.
- Embeddings — truncation is bounded on UTF-8 bytes rather than characters.
Knowing which brain holds the answer is a question you shouldn't have to answer. Search now runs across every brain you have access to, with a routing step that narrows to the likely ones first rather than fanning out over all of them.
Each brain also maintains a generated overview — what it contains, what it's for — which is what routing reads to make that decision, and which you can read yourself to get oriented in a brain someone else built.
Features8
- Routines can enrich themselves from the web while they run, with multi-query and adaptive depth.
- Routines produce binary file deliverables and attach them to their email.
- Artifacts expose a deliverable manifest, and deliverable content is extracted for semantic search.
- Notion can be opted into per brain at context-session creation.
- Skill bundles carry binary brand assets.
- MCP server —
search_brains,search_all_brains, andget_brain_overview. - MCP server —
delete_skilland a refresh mode onadd_skill_to_brain. - MCP server — gated deletes and refresh in chat, bringing it to parity with MCP.
Improvements3
- Agent routines default to the chat runtime, and the content that triggered a run is injected as its focus.
- Team-document originals moved off Vercel Blob to S3.
- The ZeroEntropy reranker is removed from the team path.
Fixes3
- Notion index —
notion_node.pathbinds asltreeagain, fixing an asyncpg type mismatch. - Routines — the enrich deep→quick downgrade applies on edit; document trigger-focus is built from ordered chunks.
- Artifacts — S3 bytes are garbage-collected on delete.
Security1
- Developer keys — mem-manager keys validate against the data-plane memory API, and revocation is atomic.
Say what you want to happen and when, and chat writes the routine. "Email me a digest of the design brain every Monday" creates a scheduled routine; "when a Fathom call lands, pull the decisions into the product brain" creates an event-triggered one. Listing, editing, deleting, and running them on demand all work from the same conversation.
Routines run a skill against a brain, produce a deliverable, and email it to you as rendered HTML. Event triggers cover documents being added, artifacts being saved, and Fathom meetings landing, each with a condition gate so a routine doesn't fire on everything.
A skill is a reusable procedure your agents can execute — packaged, versioned, and
stored as a real bundle rather than a prompt someone pasted into a doc. Author one
in chat or from Claude Code with create_skill, share it into a brain, and anyone
who can reach that brain can run it.
Skills stage into the code-execution sandbox by name, so chat can load the right one for the task instead of improvising. Built-in skills are preloaded for everyone.
Connect the GitHub App and MemHub reviews your pull requests, posting findings as inline review comments on the diff. Because the reviewer reads your team's brains, it flags the things a generic linter can't — the decision made three months ago that this PR quietly reverses.
Findings are ranked by user-felt impact rather than severity theatre, re-flagged
findings are deduplicated across rounds, and fixed ones resolve themselves. Add
the skip-review label to opt a PR out. Available on Scale and Enterprise.
Features9
- Notion pages are indexed org-wide with page-level grants, incremental refresh on webhook, and a revocation sweep that retracts brain copies when a grant goes away.
- Fathom connects per user rather than per org, with an optional pinned brain.
- Artifact file-bundle storage with a version tree, plus external-MCP file uploads and a file-serve endpoint.
- Routine trigger types split into schedule and event.
- Referral summary endpoint.
- MCP server —
create_skillauthors a skill from chat or Claude Code. - MCP server — read-only
list_skillsandget_skill. - MCP server — share a skill into an agent brain.
- MCP server —
recall_directivesfor team-stack directive recall.
Improvements4
- Chat explains its tool calls as it works instead of going quiet.
- Agent brains can be selected in chat and are searched without being asked for.
- All sources moved under Brains.
- Slack notifications default on for teammates.
Fixes4
- Chat — the loop runs on the Responses API, fixing reasoning and tool-call handling; bounded DB and Redis operations stop a hanging conversation.
- GitHub — deleting the integration uninstalls the app.
- Email — routine deliverables render Markdown to HTML instead of emailing raw Markdown.
- Billing — a first Pro org can check out directly.
Security1
- Team documents — brain-scoped ingest is gated on brain access alone, and homed at the brain's own workspace.
Two connectors landed this release. Fathom installs over OAuth and ingests your call recordings into a brain via webhook, so decisions made on a call are searchable without someone writing them up afterwards. The GitHub App installs at the org level and brings repository activity in the same way.
You can also ingest a document straight from a public URL over REST — useful when the thing you want in a brain is a page rather than a file.
Features11
- Mistral OCR for document parsing, plus DOCX parsing with image descriptions.
- Document citations in team chat.
- Artifacts and documents take tags, which are searchable and patchable.
- Agent runs get a per-fire isolated sandbox on Fargate and Lambda.
- Ingest a document straight from a public URL.
- MCP server — brain tools: create, list, share, and brain-scoped recall.
- MCP server — workspace-aware tools, including
list_orgsand anorg_idargument across the surface. - MCP server —
import_conversationbrings a Claude Code conversation in wholesale. - MCP server —
delete_artifact, artifact tags, and lineage/diff queries. - MCP server —
search_memorynow reaches the documents substrate. - Hybrid search — dense and lexical combined with reciprocal rank fusion.
Improvements1
- The unused personal-skills feature is removed end to end.
Fixes4
- Tags — tag columns use a Postgres
ARRAYso tag-filtered search works. - MCP server — RFC 9728 metadata is served at the full endpoint path.
- Brains — creation status surfaces to the frontend rather than looking stuck.
- Embeddings — per-input tokens are capped at the embedding client.
Security1
- Document ingest — resource bounds against malicious uploads.
Notion as a source
MemHubNotion connects over OAuth at the org level. An admin grants the specific pages the team should be able to draw on, and those pages become brain content — searchable alongside everything else, refreshed as they change rather than imported once and left to rot.
Grants are explicit, so connecting Notion doesn't mean handing over the whole workspace.
Features5
- Markdown-formatted document view.
- Belief-revision history is available in context, so an answer can show how a fact changed.
- MCP server — brain tools: create, list, share, and brain-scoped recall.
- MCP server —
add_memoryroutes facts and episodes into a specific brain. - MCP server — artifact versioning via
parent_id, plusget_artifactlineage.
Improvements4
- Brain Settings is redesigned around a data-policy header.
- A brain shows up immediately after creation with a building status, instead of appearing once it finishes.
- Referrals page refresh.
- Saved artifacts store an LLM-written summary rather than the first 300 characters of their content.
Fixes5
- Facts — the filter on the facts page works.
- Chat — "shared with me" no longer shows the wrong brains.
- Brains — refreshing the page during creation no longer clears the in-progress state.
- Orgs — leaving an org completes instead of hanging on a spinner.
- Settings — the org settings button is restored.
MemHub speaks MCP. Point Claude, Cursor, or Claude Code at your server URL and the
agent can search your team's memory with search_memory, save what it learns with
add_memory, and store artifacts with save_artifact — no copying context between
tools.
Auth is handled at the transport level with OAuth discovery, so connecting is a browser round-trip rather than a pasted key. Connected apps are listed in settings and can be revoked from there.
Terminal login
MemHubWiring a terminal agent to MemHub no longer means minting a key by hand. memhub login authenticates in the browser and hands the credentials back to the
terminal, over a loopback redirect or the device flow when a browser isn't
available.
Features7
- Autonomous discovery — a deep-research-style pass that decomposes a question, fills gaps, and ingests what it finds directly into a brain.
- A 14-day in-app trial for company orgs, with no card required.
- Referral codes are captured at signup.
- Documents in a brain are searched as part of chat retrieval.
- More document types accepted on upload.
- MCP server — inbound MCP server with read-only
search_memory. - MCP server —
save_artifactandadd_memorywrite tools, plus a Claude Code turn-save hook.
Improvements4
- Slack binding status is readable, so the UI can tell whether Slack is actually connected.
- Billing — checkout returns
amount_totaland currency, andhas_billing_accountis exposed for the trial-to-paid upgrade path. - Scoped data access to support the share modal.
- Pairwise consolidation runs at flush, cutting duplicate facts.
Fixes5
- Chat — empty tool-loop responses no longer stall the conversation.
- Discovery — a friendly message when discovery finds nothing, rather than an empty screen.
- Documents — text extraction failures are handled gracefully; gating no longer blocks users entitled to a document.
- Onboarding — returning after exiting early puts you back into onboarding, and account deletion redirects to login.
- Persistence — NUL bytes are scrubbed and blank messages fall back to a zero vector instead of erroring.
Security2
- MCP server — transport-level auth with RFC 9728 discovery, and the public host is allowlisted in DNS-rebinding protection.
- Per-message rate limiting.
Brains now live inside workspaces, each with its own members and overview page, so a team that works on several things at once can keep them apart. Every brain got a detail page with sharing, renaming, and settings in one place.
The app layout was rebuilt around this — a real sidebar with a single source of truth for what's highlighted, billing moved into the org selector, and personal and team content separated instead of interleaved.
Creating a brain used to mean filling in a form and then figuring out what to put in it. Describe what you want instead: the create flow proposes topics, shows you the facts and episodes behind each one before committing, and builds the brain from what you keep.
Features6
- Documents tab on Memories, with team-document upload and an in-app viewer.
- Slack connects over OAuth, with slash commands.
- Integrations page for managing org connector credentials.
- MCP server — the MCP server route, with its URL shown on the Connected apps tab.
- MCP server — workspace-scoped memory search and
list_workspaces. - MCP server — Notion and Granola connect as outbound providers.
Improvements4
- Memory Map is org-aware and renders team data.
- Artifact bodies load lazily when you open the detail view.
- Manual cron schedules render as "Manual" rather than a cron string.
- Generated API types are checked in CI so the frontend can't drift from the backend.
Fixes3
- Chat — team conversation deletes are wired to the API; the assistant bubble uses a readable palette.
- Sidebar — highlight state derives from the URL, so it stops disagreeing with the page you're on.
- Dashboard — demo statistics no longer render as live counts.
Features3
- Filter facts by fact type and by status, and search artifacts.
- Export to Obsidian.
- Memory mind map.
Improvements2
- Artifact and fact lists are paginated.
- Artifact detail shows the summary and the rationale behind it.
Fixes3
- Facts — no flash on load; the page no longer freezes on large sets.
- Chat — routes moved from a query parameter to a slug, fixing a class of navigation bugs.
- Memories — upload failure fixed.
Features2
- Artifacts track
derived_fromrelationships, so a version chain can't be corrupted by a later edit. - Conversations carry a message count.
Improvements2
- Belief retraction derives a new artifact rather than mutating the old one.
- Facts are paginated.
Fixes3
- Facts — duplicate facts are no longer created; failed duplicate carriers are dropped instead of being upserted as ordinary facts.
- Artifacts — relationship resolution moved out of the detector; resolver caps tuned, and event-versus-state belief rules corrected.
- Billing — subscription upgrades no longer hit a foreign-key violation, and
plan_idsyncs from the Stripe price onsubscription.updated.
Security1
- Orgs — the org creation limit can no longer be bypassed.