- Per-task share-page input transparency — closes the named rev-94 next-sprint candidateRev 94 shipped the per-task work-log share + per-task timeline share pages, but neither surfaced the rev-41 artifact-share evidence primitive that procurement reviewers expect on every governance surface. Rev 95 closes it. New `getPublicTaskSourceSummary()` helper mirrors the rev-42 `getPublicArtifactSourceSummary()` shape exactly: counts + per-kind breakdown only, no signal detail bodies or source URLs that may carry internal context. Both `/share/work-log/<token>` and `/share/timeline/<token>` pages now render an 'Inputs that shaped this task' panel reading from the rev-1 task.sourceSignalIds + rev-44 task.sourceMemoryIds primitives. **Strategic significance**: closes the procurement-narrative-loop on the public surface that rev 94's running state explicitly named — external readers can now verify procurement evidence end-to-end on every share surface, not just artifacts. The rev-42 artifact share evidence primitive becomes load-bearing on two more public surfaces in one cycle.
- Email-share wrapper button — closes the named rev-94 next-sprint candidateRev 94's running state explicitly named 'work-log share email-link wrapper' as a rev-95 candidate, citing the share→deliver loop closure for operators forwarding share links via email. Rev 95 ships the wrapper across all three share button surfaces (rev-10 artifact, rev-93 work-log, rev-94 timeline) as one shared `ShareEmailButton` component. New 'Email' chip alongside the existing Show/Hide/Copy/Revoke chips opens the operator's default mail client via `mailto:` with the subject + body pre-filled (artifact title or task title + share URL + 'shared via Loop Desk' attribution). Pure client-side — no server round trip, no Resend, no deliverability concerns; the email lands in the operator's outbox where they can review + send. **Strategic significance**: closes the share→deliver loop the rev-94 next-sprint focus named. Procurement-conscious operators forwarding evidence to a reviewer no longer have to copy the share URL + open Gmail + paste + type a procurement-friendly subject + body by hand. One tap → mail client opens with the right subject + body. The lowest-friction expression of 'this share link is meant to be sent.'
- Source rename inline — closes a long-outstanding usage-friction gapSource labels have been write-once at create-time since rev 1. Workspaces with 20+ feeds (especially rss.app / fetchrss bridges with generic auto-generated names like 'Daily updates from Acme') routinely accumulated labels that weren't workstream-meaningful, and changing them required a delete-and-recreate dance that lost the rev-5 GUID dedup state. Rev 95 ships inline rename. New `setSourceLabel()` helper + extended `PATCH /api/sources/{id}` route accepting `{ status }` OR `{ label }` (mutually exclusive) + matching `PATCH /api/v1/sources/{id}` v1 mirror in lockstep + new `SourceRename` client component (Pencil chip → inline editable input → Save / Cancel). Activity log records every rename so the audit trail captures what the source used to be called — load-bearing for SOC 2 / ISO 42001 reviewers tracing how the workspace's input set evolved. **Strategic significance**: cumulative diversification away from the cost / digest / share-page cluster that has dominated rev-by-rev work for many cycles. The source surface is the operator's primary input-tuning surface (rev 6 pause/resume + rev 16 health diagnostics + rev 26 keyword filters + rev 36 bulk operations + rev 95 rename) — closing the rename gap finally makes every standard source-management action available without a delete-and-recreate workaround.
- v1 mirror + OpenAPI typed schema for the rev-95 endpointNew `PATCH /api/v1/sources/{id}` mirrors the dashboard endpoint (mutually exclusive `{ status }` | `{ label }` payload) so MCP hosts driving the desk programmatically can pause/resume + rename through one bearer-auth call. Typed in the rev-78 OpenAPI 3.1 spec via `oneOf` so code generators see the discriminated-union shape exactly. Indexed in `/api/v1`. The cadence pattern of 'ship the dashboard primitive + the v1 mirror + the OpenAPI typed schema in lockstep' that started rev 37 continues unbroken into rev 95 — the source-mutation surface on the protocol-bound side now matches the dashboard surface 1:1, leaving nothing for the upcoming MCP server to design.