- GET /api/v1/changelog/{rev} — single-rev detail endpointCloses the load-bearing v1 parity gap on the rev-169 dashboard primitive (per-rev detail pages at /changelog/[rev]). Until rev 174, an MCP host wanting to render 'show me what shipped in rev 168' had to fetch /api/v1/changelog?limit=N and filter client-side. Rev 174 makes the answer a one-call bearer-less GET. Each response carries the source rev's full shape (rev / date / title / highlights[]) plus a `neighbors` block { newer, older } with adjacent revs for chronological navigation parity with the rev-107 blog /api/v1/blog/{slug}/neighbors primitive. Pairs with /api/v1/changelog (listing rev 100/101) as the two-axis changelog read surface on the protocol-bound side (full history + per-rev detail) — same depth pattern the rev-102/103 blog cluster reached after listing + per-post detail. No auth — public marketing surface (same model as /api/v1/changelog, /api/v1/blog/{slug}, /api/v1/roadmap-items). Cache-control public, max-age=300, s-maxage=1800. OpenAPI 3.1 spec types the new endpoint with full request/response schemas + 404 error path in lockstep — the cadence pattern from rev 78 onward (every dashboard primitive gets typed in the OpenAPI 3.1 spec in the same cycle it ships) reaches its 89th unbroken rev with rev 174.
- /changelog/rss.xml feed items now link to per-rev detail pagesUntil rev 174 the feed items linked to the rev-101 in-page anchor /changelog#rev-N — feed-reader subscribers (Feedly, Inoreader, AI tooling release-roundup newsletters) landing on a new release dropped onto the changelog index with the rev pre-scrolled but lost the rev-169 dedicated OG card + per-rev SEO surface. Rev 174 makes every feed item land on its dedicated /changelog/[rev] detail page so the share + SEO + JSON-LD axis (rev 169 + rev 174 JSON-LD) is reachable from every aggregator without a follow-up click. GUIDs upgraded to `isPermaLink=true` URL form so feed clients dedupe and link through correctly. Plus per-item `<media:thumbnail>` + `<media:content>` pointing at the rev-169 per-rev OG card so feed readers that render thumbnails (Feedly, NetNewsWire, Reeder) show the rev-specific share-card image inline in their item list — the strongest possible visible-velocity trust signal for procurement teams reviewing AI-tool release cadences.
- Per-rev share-affordance chip on /changelog/[rev]Until rev 174 the rev-169 detail page had title + content + adjacent-rev navigation but no copy-link chip. The rev-101 changelog list has had per-rev copy-link chips since then; rev-126 added the same pattern at the roadmap-phase level. Rev 174 closes the share-affordance loop on the per-rev detail page itself with a brand-color 🔗 Copy link chip in the article header meta row. Pure client-side via `navigator.clipboard.writeText` with the standard `execCommand` fallback for non-secure contexts (matches the rev-42 / rev-43 / rev-101 / rev-125 / rev-126 / rev-128 / rev-133 chip-copy pattern that has run since rev 42). Brand-green `is-copied` success state + 1.6s pulse animation matches the rev-101 changelog permalink + rev-125 roadmap permalink + rev-126 roadmap-filter share chip vocabulary so all the dashboard's share-affordances ring out with one consistent visual story across every public surface (in-app, share page, public marketing). Distinct from the rev-101 index-page chip (which fades in on row hover) — the detail-page chip is always-visible because once the reader has landed on the detail page, the share intent is already strong.
- Per-rev TechArticle JSON-LD structured data on /changelog/[rev]Closes the structured-data axis on the per-rev detail page — the only public marketing surface still without schema.org markup after rev-103 / rev-170 / rev-171 closed it on /blog/[slug] / /templates / /integrations / /templates/[key] / landing. TechArticle is more accurate than Article for changelog entries since the content describes software changes (Google's structured-data tooling treats TechArticle as a first-class subtype with bonus surface area in developer-focused search results). Pure server-rendered `<script type=application/ld+json>` block generated at request time from the existing release data. Strategic significance: every public marketing surface now ships schema.org structured data — landing (rev 171), templates index (rev 170 CollectionPage + ItemList), templates detail (rev 171 FAQPage), integrations (rev 170 CollectionPage + ItemList), blog post (rev 103 Article), per-author archive (rev 105 + rev 171 OG avatar), AND per-rev detail (rev 174 TechArticle). Closes the structured-data axis on every public read surface uniformly so procurement reviewers + AI tooling discovery systems consuming schema.org markup get the complete picture in one fetch.