- /api/v1/workspace/activity-export โ bearer-auth CSV mirror of rev-7 dashboard endpointThe rev-7 activity CSV download has been dashboard-only for 113 revs. Until rev 120 MCP hosts and audit-evidence-takeaways had to scrape the JSON `/api/v1/activity` endpoint and re-format for procurement reviewers โ the JSON is paginated, newest-first, and not the procurement-friendly shape SOC 2 / ISO 42001 reviewers ask for. New `GET /api/v1/workspace/activity-export?since=ISO&until=ISO` route reuses `getWorkspaceActivityCsv()` verbatim โ one server-side implementation, two surfaces. Same `since` / `until` ISO query params as the rev-65 dashboard variant so the takeaway can be scoped to a specific quarter or month. Closes the procurement-evidence v1 cadence pattern at the activity axis.
- /api/v1/workspace/artifacts-export โ bearer-auth CSV mirror of rev-22 dashboard endpointThe rev-22 outputs catalog CSV (createdAt, updatedAt, kind, status, title, summary, tags joined by `|`, share URL, view count) was dashboard-only for 98 revs. New `GET /api/v1/workspace/artifacts-export` route mirrors the rev-22 dashboard endpoint exactly. Reuses `getWorkspaceArtifactsCsv()` verbatim. Closes the procurement-evidence v1 cadence pattern at the outputs axis.
- /api/v1/workspace/decisions-export โ bearer-auth CSV mirror of rev-47 dashboard endpointThe rev-47 decisions log CSV (scoped exactly to the rev-9 dashboard 'Decisions log' semantics โ status โ {approved, archived}, kind โ brief) was dashboard-only for 73 revs. New `GET /api/v1/workspace/decisions-export` route mirrors the rev-47 dashboard endpoint exactly. Reuses `getWorkspaceDecisionsCsv()` verbatim. Distinct from the existing `GET /api/v1/decisions` endpoint (which returns JSON) โ the CSV variant is the procurement-friendly takeaway shape. Closes the procurement-evidence v1 cadence pattern at the decisions axis.
- /api/v1/workspace/stale-tasks-export โ bearer-auth CSV mirror of rev-50 dashboard endpoint + activity log expand-all/collapse-all + per-bucket 'N new since visit' pillThree-part change. (a) The rev-50 stale-tasks CSV (with rev-51 cost columns inline) was dashboard-only for 70 revs. New `GET /api/v1/workspace/stale-tasks-export?thresholdDays=N` mirrors the rev-50 endpoint with the same 1-60 threshold override. Closes the procurement-evidence v1 cadence pattern at the stale-task axis โ the procurement-evidence v1 mirrors are now complete across activity (rev 7), outputs (rev 22), decisions (rev 47), stale-tasks (rev 50), cost-summary (rev 60), and sources (rev 96), a five-axis cluster all on the protocol-bound surface. (b) The rev-78 time-bucketed activity log + rev-79 per-bucket collapse gained a one-tap `Expand all` / `Collapse all` chip pair above the bucket list when 2+ buckets exist โ until rev 120 an operator with 4 collapsed buckets had to click 4 chevrons to expand them all. Persisted via the same localStorage + dashboardPrefs sync as the per-bucket toggle. (c) Each bucket head now also shows a brand-color `N new` pill when โฅ1 entry in that bucket landed since the operator's previous visit โ pairs with the rev-76 since-last-visit primitive at the rev-78 bucket axis so operators with collapsed buckets see at a glance which ones carry unseen content without expanding them.