- Per-source next-poll chip on every source row + cadence summary block above the sources panelRev 141 shipped per-source cadence overrides as a write primitive — operators could tune feed cadence per source but couldn't see at a glance which feeds were due to poll soon vs which were sitting on a slow override. Rev 142 closes that gap. New `computeSourcePollGating()` helper computes the same answer the rev-5 RSS poller uses (`lastSyncedAt + pollIntervalMinutes` for override-bearing sources, workspace cadence otherwise) so the dashboard surface and the poller agree on what 'next poll' means. Surfaces inline as a `↻ Nm` chip in the source row pill cluster with three visual states: muted-teal (workspace cadence + waiting), brand-purple (rev-141 override + waiting), brand-amber `↻ poll due` (interval crossed since last sync). Tooltip carries the full breakdown (interval + override status + minutes-until-due) so the chip stays compact without losing detail. New cadence summary block above the source list aggregates the workspace's cadence mix (`5 pollable · 3 on workspace cadence (5m) · 2 with override · 1 due now`) so operators see at a glance how their cadence mix is structured. Hidden when there are no feed-style sources to gate.
- GET /api/v1/sources/cadence-overview — closes the named rev-141 candidate at the protocol surfaceUntil rev 142 an MCP host driving the desk could read the rev-141 `pollIntervalMinutes` per source via `GET /api/v1/sources` but had to compute next-poll-at and the override-vs-workspace breakdown client-side. Rev 142 makes the answer load-bearing on the v1 surface in one bearer-auth call. New `getSourceCadenceOverview()` helper returns workspace cadence + plan floor + per-source breakdown (cadence minutes, override status, last sync, next poll ISO, due-now flag, minutes-until-due) sorted by minutes-until-due ascending so the loudest 'this is about to poll' rows surface first. Pairs with the rev-141 dashboard chip + rev-142 cadence summary panel as the protocol mirror of the in-app surface. The MCP server's per-source-cadence tooling now has nothing left to design across cadence write (rev 141 PATCH) + cadence read (rev 141 GET projection) + cadence aggregate (rev 142 cadence-overview).
- OpenAPI 3.1 typed coverage on the new endpoint — 64th unbroken cadence revOpenAPI spec types the new `/sources/cadence-overview` GET endpoint with full request/response schemas (workspaceLoopMinutes, planFloorMinutes, totalSources, pollableSources, withOverride, followingWorkspace, dueNow, perSource[] with full per-source shape including ISO date-time formats). The cadence pattern from rev 78 onward (every v1 enhancement gets typed in the OpenAPI spec in the same cycle it ships) reaches its 64th unbroken rev with rev 142. The OpenAPI spec changelog header gains a rev-142 block explaining the protocol-surface aggregate that closes the rev-141 follow-up. The `/api/v1` self-describing endpoint index also documents the new endpoint inline so MCP-host integrators reading the index discover it without opening the spec.
- Cumulative dashboard polish — three-state next-poll chip palette + tactile hover liftNew `.ld-source-next-poll` CSS class with three visual states distinguishing workspace-cadence (muted teal), per-source-override (brand-purple, signals intentional throttling), and due-now (brand-amber + bold weight, the eye lands here first). 160ms hover transition on each state. `cursor: help` so operators know the tooltip carries detail. New `.ld-source-cadence-summary` CSS for the summary block above the source list uses a soft brand-color/brand-purple gradient background so the block reads as ambient context rather than competing with the per-row chips. Cumulative micro-polish — every rev 22+ has carried at least one — and rev 142's polish is load-bearing because the source row has now accumulated 8+ chips per row (rev-1 type + status + rev-9 7d count + rev-15 sparkline + rev-74 chronic-paused pill + rev-26 keyword filter chip + rev-141 cadence chip + rev-142 next-poll chip) and needed visual distinction without competing.