# Changelog — mcp/

Visual reference for the Relay MCP surface (mcp.relayctx.com) — relay cards and
tool-response rendering inside AI agents. Companion to
`relay-platform/docs/SPEC.mcp.md`. Newest first; full detail in
`git log -- mcp/`.

## 2026-08-06 — Top-pick promotion row (relay-platform #2137)
- `relay-card-display.html`: new §Top pick — the collection-card promotion
  contract (one weighted candidate, or silence). Grammar diagram (`▸` rich,
  `>` plain, italic reason, footer math), rich/plain mode pair, and the
  per-hub weighting table for all six read hubs. Checklist gains a list-card
  item. Rule lives in relay-platform `docs/DESIGN-NOTE.mcp-surface-depth.md`.
- `response-cards.html`: pick rows added to the pending-transfers and streams
  list examples; new `relay_sessions` read-hub entry (the canonical case —
  promote a recent session first, layers to the app). Sessions 1 → 2 tools.

## 2026-08-01 — Code presence, rich + plain (DEC-025)
- New: `code-presence-display.html` — how both harness tiers render an object
  with no Code, now that DEC-025 mints one only on deliberate handoff. A single
  object in both states, a mixed list, the moment a Code exists, and four
  plain-tier anti-patterns: a dash in the Code slot, a `(not shared)` stamp, the
  `⇄` glyph emitted as raw text, and the internal ID standing in.
- The plain tier is the strict case: in a transcript an agent may re-read and
  summarise, any stand-in character is indistinguishable from a truncation
  artifact, so an unshared object simply has one line fewer. Bracketed type
  labels only (`[Relay] A3BF72KQ`) — the glyph belongs to rich, where it carries
  `aria-hidden` plus a visually hidden "Relay" label.
- Mock fidelity note: plain mocks now render Codes at inherited size and zero
  letter-spacing. Colour is plausible (a harness renders `code` runs), type
  scale and tracking are not, and faking them broke the column alignment the
  page is arguing for. Rich list rows use real layout rather than preformatted
  text, which is what the `rui-*` kit can actually hold.
- Companion to `concepts/code-presence-v1.html`; brief at
  `briefs/BRIEF.code-presence.md`. Upstream: relay-platform
  `docs/DESIGN-NOTE.mcp-rich-display.md`, RCTX-1066, relay `AJA9TN`.

## 2026-07-29 — archived cards for the pre-v3.4 versions
- `relay-card-display-v34.html` and `response-cards-v34.html` existed on disk
  but were never carded — added as archived cards alongside their current
  versions. Found while building the new index-card CI check
  (`scripts/check_index_cards.py`).

## 2026-07-19 — area restructure
- Area index added at `mcp/index.html` (the old `/mcp` → relay-card-display
  redirect dropped).

## 2026-07 (pre-restructure)
- **07-04/05** Pulse object → Stream rename across relay-card-display and
  response-cards (7HZQAX).
- **07-03** Pages migrated to v3.5 alongside the email/errors sweep.

## 2026-06
- **06-18** err-card styles wired to `--err` vars (v3.4 compliance).
- **06-14** Migration to the v3.4 design system (relay-tokens.css,
  Outfit/JetBrains Mono, ◎ glyph, tool renames); card-envelope spec + new tool
  examples on response-cards.

## Convention
Current pages are clean-named (`relay-card-display.html`); superseded versions
keep the `-v34` suffix and stay reachable.
