Also in this release

MemHub
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/main commit 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_memory captures, 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_id scope 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_directives reads the agent brain partition.
  • Chatsave_result and save_to_agent_brain can 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.
  • Dependenciescryptography is updated to 50.0.0 for CVE-2026-69247. Our usage never reached the vulnerable PKCS#7 path, but the patched version now ships.