Showcase: what a finished task has to show

A closed task can carry a showcase (owner, 2026-09-28; board #2439): a picture or a video of what shipped, a title, a short description and a link. The board shows the recent ones in a carousel above the scoreboard's tiles, and a project's board shows its own.

A showcase can be added when the task closes or any time after, by a person or an agent (virta showcase #n "text" --media … --link …, or the MCP tool). Showcasing again replaces it, and --withdraw takes it down. The carousel orders by when a task was showcased, not when it closed.

What the carousel shows: the n most recent showcases (5 by default), then the latest one from each other project that has one, so every project with something to show is there. A project's own board shows its n most recent. No showcases, no carousel.

import { pickShowcases } from 'tosijs-virta'

const shown = (num, project, at) => ({
  num, tags: [`project:${project}`], closedAt: at,
  showcase: { title: `#${num}`, text: 'x', media: '', link: '', at, by: 'me' },
})
const tasks = [
  shown(1, 'ui', '2026-09-01'), shown(2, 'ui', '2026-09-02'),
  shown(3, '3d', '2026-08-01'),
]
pickShowcases(tasks, { n: 1 }).map((t) => t.num)       // [2, 3]
pickShowcases(tasks, { n: 5, project: 'ui' }).map((t) => t.num)  // [2, 1]