- Roadmap 'Copy link' chip on the active filterCloses the named rev-100 next-sprint candidate. Rev 100 ships the URL-hash share mechanism (#filter=next/soon/considering); rev 101 closes the shareβdeliver loop with a one-tap 'π Copy link' chip that appears at the end of the chip row whenever a non-'all' filter is active. One tap β clipboard β brief 'β Copied' affordance for 1.6s. No more copying-from-the-address-bar tax for owners sharing scoped views to stakeholders. Mirrors the rev-95 mailto wrapper at the roadmap-filter axis β every public share surface now has a one-tap deliver affordance.
- /changelog per-rev permalinks + 'Copy link' chipsEvery rev card now carries `id="rev-N"` so a shared URL (`loopdesk.space/changelog#rev-100`) lands the recipient on that rev with a smooth-scroll + 2.4s flash highlight. A 'π Copy link' chip in each rev's meta column gives a one-tap deliver path; hashchange listener also re-fires the highlight on back/forward navigation. Mirrors the rev-31 comment-permalink pattern at the changelog axis. Procurement teams citing a specific rev can now share the deep link instead of pasting the rev label and asking the recipient to scroll.
- /changelog keyword search across 100+ revsThe changelog has accumulated 100 revs since the rev-14 page launch and counting; readers looking for a specific topic ('cost spike', 'MCP', 'Slack push', 'source rename') had to scroll. New `<input type="search">` above the rev list filters by rev label + title + highlight labels + descriptions, all client-side. Counter shows 'N of M' when a query is active; empty state with one-click 'Clear search' affordance. Mirrors the rev-38 dashboard activity log keyword surface at the public marketing surface β the same retrieval instinct works on both surfaces.
- GET /api/v1/changelog?sinceRev=N + OpenAPI typed schemaCloses the rev-100 deep-link share thread on the protocol-bound axis. New optional `sinceRev` query param returns only releases whose rev number is strictly greater than the supplied value. MCP hosts polling the cadence can ask 'what's new since rev 95?' and get only rev 96+ back without parsing every prior rev or doing a follow-up filter. Composes with `limit`: sinceRev filters first, then limit bounds from the most-recent end. Response shape gains `filtered` + `sinceRev` so callers can verify the filter applied. OpenAPI 3.1 spec typed in lockstep with the dashboard primitives (cadence pattern from rev 78 onward holds unbroken into rev 101).