diff --git a/docs/AGENTS.md b/docs/AGENTS.md
index cec4e34e88..4ce4678015 100644
--- a/docs/AGENTS.md
+++ b/docs/AGENTS.md
@@ -132,6 +132,7 @@ Mobile app tests live in `mobile/src/**/*.test.ts` and use Bun's built-in test r
- If a tool/agent provides an emoji string (e.g., todo-derived status or `displayStatus`), render via `EmojiIcon` (`src/browser/components/icons/EmojiIcon.tsx`) instead of rendering the emoji.
- If a new emoji appears in tool output, extend `EmojiIcon` to map it to an SVG icon.
- Colors defined in `src/browser/styles/globals.css` (`:root @theme` block). Reference via CSS variables (e.g., `var(--color-plan-mode)`), never hardcode hex values.
+- Tooltips must use the shared `Tooltip`/`TooltipIfPresent` components, not native `title` attributes. Native titles create duplicate OS tooltips and cannot be z-indexed; shared tooltips portal above clipped containers.
- For incrementing numeric UI (costs, timers, token counts, percentages), use semantic numeric typography utilities (`counter-nums` / `counter-nums-mono`) to prevent width jitter.
- Choose `counter-nums-mono` only when monospace is an intentional visual style (e.g., terminal/telemetry), not merely as a workaround.
- Use `min-w-[Nch]` only when reserving layout width is intentional and separate from tabular numeral stability.
diff --git a/src/browser/features/Memory/MemoryBrowser.tsx b/src/browser/features/Memory/MemoryBrowser.tsx
index 094ecd12f7..e85aa56bf3 100644
--- a/src/browser/features/Memory/MemoryBrowser.tsx
+++ b/src/browser/features/Memory/MemoryBrowser.tsx
@@ -11,6 +11,7 @@ import {
} from "lucide-react";
import { ConfirmationModal } from "@/browser/components/ConfirmationModal/ConfirmationModal";
+import { TooltipIfPresent } from "@/browser/components/Tooltip/Tooltip";
import { useAPI } from "@/browser/contexts/API";
import { RowActionButton } from "@/browser/features/RightSidebar/GoalBoardSections";
import { isAbortError } from "@/browser/utils/isAbortError";
@@ -555,16 +556,25 @@ function ConsolidationFooter(props: {
return (