mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-08-28 05:25:33 +00:00
Keep docs asset URLs repo-root-relative and pass images as literal MDX children so Mintlify can compile them through OptimizedImage under the /docs mount. Mintlify's official guidance says: “Image paths are root-relative from your docs repository.” It also says relative paths such as `./screenshot.png` are unsupported. See [Image embeds](https://www.mintlify.com/docs/create/image-embeds). The existing `/images/...` paths were correct. The failure came from passing them through custom-component string props, which kept Mintlify from seeing those images during its MDX transform. - fix hero, building-block, and Slack avatar images - preserve Slack avatar clipping - normalize Hermes and Company Brain icon sizing Tested with Mintlify validation, broken-link checks, and browser checks across every changed route.
101 lines
4.9 KiB
Text
101 lines
4.9 KiB
Text
---
|
|
title: "From Support Ticket to Code Fix"
|
|
sidebarTitle: "Escalation"
|
|
description: "A Plain ticket gets triaged in Slack, and an @mention hands the fix to Cursor"
|
|
icon: "bug"
|
|
---
|
|
|
|
import { SlackThread, SlackMessage, Mention, FileAttachment, AgentLink, SlackUnfurl, SlackButton } from "/snippets/slack-message.mdx";
|
|
|
|
## The scenario
|
|
|
|
A customer files a ticket through Plain. It lands in `#support`, gets triaged with context Company Brain already has lying around, and — instead of someone manually filing a bug and waiting — an @mention hands the whole thing straight to Cursor.
|
|
|
|
## What happens
|
|
|
|
<SlackThread channel="#support" members={24}>
|
|
<SlackMessage
|
|
name="Plain"
|
|
badges={["APP"]}
|
|
hasAvatar
|
|
time="10:12 AM"
|
|
>
|
|
<img src="/images/company-brain/plain-icon.png" alt="" />
|
|
New conversation: <AgentLink href="#">rewriteQuery param not working</AgentLink>
|
|
<br />
|
|
**Jordan Alvarez** (acme-corp.io) sent a **new message**.
|
|
<SlackUnfurl footer="Added by Plain">
|
|
hi team, just tried the `rewriteQuery` param on the v3 search endpoint and it doesn't seem to actually do anything — tried a few different values, results look identical either way. can someone take a look
|
|
</SlackUnfurl>
|
|
</SlackMessage>
|
|
<SlackMessage bot hasAvatar time="10:13 AM">
|
|
<img src="/images/company-brain/supermemory-slack-icon.png" alt="" />
|
|
Confirmed, this is a real one — a couple of people have also flagged it on GitHub over the last week.
|
|
<br />
|
|
<br />
|
|
Quick context: v3 search is deprecated, but we've committed to legacy support through end of year, so it's still worth fixing rather than telling people to migrate. Most likely cause is a change <Mention>Adam</Mention> shipped last week to cut down query-rewrite costs — looks like it short-circuits before `rewriteQuery` gets applied in some cases.
|
|
<br />
|
|
<br />
|
|
<Mention>cursor</Mention> can you take this one? Full context attached.
|
|
<br />
|
|
<br />
|
|
<FileAttachment name="Context.md" />
|
|
</SlackMessage>
|
|
<SlackMessage
|
|
name="Cursor"
|
|
badges={["AGENT"]}
|
|
hasAvatar
|
|
time="10:14 AM"
|
|
>
|
|
<img src="/images/company-brain/cursor-icon.png" alt="" />
|
|
<AgentLink href="#">Agent thread started</AgentLink>
|
|
<br />
|
|
Reproducing against the v3 search test suite now.
|
|
</SlackMessage>
|
|
<SlackMessage
|
|
name="Cursor"
|
|
badges={["AGENT"]}
|
|
hasAvatar
|
|
time="10:19 AM"
|
|
>
|
|
<img src="/images/company-brain/cursor-icon.png" alt="" />
|
|
Fixed — `rewriteQuery` was getting skipped by the new cost short-circuit whenever a query was already cached. Pushed on <AgentLink href="#">#2312</AgentLink>.
|
|
<br />
|
|
<br />
|
|
**Resolution:**
|
|
<br />
|
|
• Scoped the short-circuit to skip only the rewrite step, not the whole `rewriteQuery` path
|
|
<br />
|
|
• Added a regression test covering `rewriteQuery` against a cache hit
|
|
<br />
|
|
<br />
|
|
**Repository:** `supermemoryai/mono`
|
|
<br />
|
|
<br />
|
|
<SlackButton variant="primary">Open in Web</SlackButton>
|
|
<SlackButton>Open in Desktop</SlackButton>
|
|
</SlackMessage>
|
|
<SlackMessage bot hasAvatar time="10:20 AM">
|
|
<img src="/images/company-brain/supermemory-slack-icon.png" alt="" />
|
|
<Mention self>Dhravya</Mention> I'll let you review that and let the customer know we have a fix ready.
|
|
<br />
|
|
Please do it ASAP — it's an enterprise customer!
|
|
</SlackMessage>
|
|
</SlackThread>
|
|
|
|
## What's really going on
|
|
|
|
The first two turns are the same pattern as [Automatic Support](/company-brain/use-cases/support): the bot is already a member of `#support`, so it [chimes in](/company-brain/automations) unprompted, correlating the ticket against known GitHub issues and whatever it knows about the codebase and the v3 deprecation timeline.
|
|
|
|
The handoff to Cursor is different. That's not a chime-in — it's an explicit `@mention`, and Cursor is wired in as a [tool connector](/company-brain/connectors) (a custom MCP server, same as GitHub or Linear under the hood) that can act, not just answer. Naming it by name is what triggers the write: Company Brain hands off the attached context and Cursor opens its own agent thread against the repo, the same way a mention of GitHub or Linear in [Acting in Tools](/company-brain/use-cases/acting-in-tools) triggers a write rather than a read. Nothing happens in the codebase without that explicit ask.
|
|
|
|
Whether that handoff is even possible follows the same [permissions](/company-brain/permissions) rules as any other tool: it runs under whichever connection — personal or org-shared — is actually wired up for Cursor, and it's scoped to what that connection can see.
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="Acting in Tools" icon="wrench" href="/company-brain/use-cases/acting-in-tools">
|
|
How @mentions trigger writes instead of reads.
|
|
</Card>
|
|
<Card title="Connectors" icon="plug" href="/company-brain/connectors">
|
|
Wire up Plain, GitHub, and custom MCP servers like Cursor.
|
|
</Card>
|
|
</CardGroup>
|