- Recent template usage tracking + auto-prioritized chip rowThe rev-64 quick-start chip row now tracks operator usage in localStorage (per-workspace key `loopdesk:template-usage:<workspaceId>`) and re-orders chips so the operator's most-recent six-or-eight task shapes float to the front. The single most-recent template wears a 'recent' pill so the eye lands on it first. Pure client-side memory โ no schema, no API round-trip, no SSR mismatch. **Strategic significance**: rev 64 introduced templates as a stickiness pivot from the cost-axis cluster; rev 65 makes the template list adapt to the *individual operator's* working pattern. Operators with a 'I always run a competitor analysis on Mondays' rhythm see that template waiting at the front of the row instead of having to scan the same eight chips every time.
- AI-suggested template from operator history (closes named rev-64 candidate)New `suggestTemplateFromHistory()` helper in `src/lib/task-templates.ts` analyses the last 30 days of tasks and proposes a synthetic template when 3+ tasks share a (kind, deliverableType, primary tag) triple. Surfaces as a distinct 'โจ Detected from your recent tasks' chip ahead of the static templates with the recurring pattern's pre-fills (matching kind/deliverable/tags + a hint that names the source pattern, e.g. 'You've created 4 similar customer briefs in the last 30 days'). De-duped against the static TASK_TEMPLATES so a workspace already running competitor-analysis tasks doesn't see two competitor-analysis chips. Pure deterministic computation โ no AI cost, runs server-side inside `getDashboardState()` against existing `task` rows. **Strategic significance**: closes the named rev-64 next-sprint candidate at the cheapest possible tier. Foundation for an upcoming rev that lets operators *save* a detected pattern as a workspace-scoped persistent template (which would require new schema). Until then, the suggestion is one-shot per session and the operator overwrites the title/summary inline like with the static templates.
- Scoped activity CSV export (procurement quarterly/monthly artefact)`getWorkspaceActivityCsv()` now accepts optional `since` / `until` Date bounds. The `/api/workspace/activity-export` route accepts ISO `since` and `until` query params (until is end-of-day for the chosen date so the filter is intuitive). New 'scope to date range' UI mounts directly under the existing JSON / activity-CSV / outputs-CSV / decisions-CSV / stale-tasks-CSV / cost-summary-CSV row in the integrations panel โ two date inputs + a download button that flips its label between 'Download full activity CSV' and 'Download scoped CSV' depending on whether bounds are set. Filename also reflects the scoped range so a SOC 2 reviewer downloading 'loopdesk-acme-activity-2026-04-01-to-2026-04-30.csv' has procurement-evidence provenance baked into the artefact. **Strategic significance**: until rev 65 the activity export returned the trailing 5,000 rows unconditionally โ sufficient for the procurement-evidence trio (rev 6/7/22) but a SOC 2 reviewer scoping a specific quarter or month had to filter the downloaded CSV by hand in Excel. Cap stays at 5,000 rows even with the filter so the takeaway stays Excel-sized; if a quarter has more than 5k entries the response shows the most-recent 5k inside the window.
- Source coverage info-line on the desk-health widget + v1 mirrorThe rev-13 `DeskHealth` widget gains a 5th *informational* HealthLine showing distinct source-types as filled cells against the total source-type vocabulary (10: website, shopify, etsy, feedback_inbox, notion, drive, manual, rss, review_site, linkedin). Pure informational โ does **not** change the 100-point score (which would be a v1 stats / badge SVG breaking change). Adaptive copy: 'one type โ consider broadening' / 'two types โ healthy starter mix' / 'three types โ strong coverage' / 'N types โ broad coverage' so operators see at a glance whether they're concentrated on RSS or have a mature signal mix. Mirrored on the v1 stats endpoint as `distinctSourceTypes` so MCP hosts can render the same coverage info in their own UIs. **Strategic significance**: pairs with the rev-13 single trust number + rev-14 cycle performance + rev-15 signal sparkline + rev-64 activity heatmap as the *fifth* instrument on the desk-health cluster โ but along the source-coverage axis the others don't cover. Until rev 65 a workspace pulling everything from a single noisy LinkedIn bridge had no in-app diagnostic that nudged 'you'd benefit from a second source type'. Pairs naturally with the rev-19 onboarding templates (which seed initial sources) so the source-coverage line answers 'have we kept growing the source mix since onboarding?'.