- Per-task work log shareable permalink โ closes the named rev-92 next-sprint candidateUntil rev 93 the rev-12 per-task work log + rev-14 operator notes were operator-visible on the dashboard but had no external-reader surface โ a procurement reviewer auditing AI cycle work had to either be granted dashboard access or rely on the operator copy-pasting the work log into another doc. Rev 93 closes that. New `task.publicWorkLogToken` column + `setTaskWorkLogShareToken()` helper + `POST /api/tasks/{id}/share-work-log` route + matching `POST /api/v1/tasks/{id}/share-work-log` v1 mirror. New public read-only `/share/work-log/[token]` page renders the work log + operator notes as a procurement-friendly evidence trail with token + estimated-cost summary, robots-noindex, and print-friendly via the rev-92 print stylesheet. The rev-92 print stylesheet primitive turns out to be load-bearing on the rev-93 surface โ operators take it as a clean single-document PDF for their procurement evidence package without any new tooling. New `TaskShareWorkLogButton` mounts on every active-work card alongside the rev-12 TaskWorkLog button. Mirrors the rev-10 ArtifactShareButton shape exactly so operators read the share affordance with one consistent vocabulary across the artifact + work-log share surfaces. **Strategic significance**: closes the procurement-evidence gap on AI cycle work explicitly named in the rev-92 next-sprint focus list. The procurement story across the public surface is now five levels deep: input evidence (rev 42) + revision lineage (rev 44) + interactive narrowing (rev 45/46) + take-and-print (rev 92) + AI cycle reasoning trail (rev 93).
- Workspace-shared saved searches โ closes the named rev-92 next-sprint candidateNew `workspace.sharedSavedSearches` JSONB column carrying `{ id, name, query, createdByUserId, createdByName, createdAt }[]`. Capped at 30 entries per workspace (vs rev-18's 6 per-user) since it pools across the team. New `addSharedSavedSearch()` / `listSharedSavedSearches()` / `removeSharedSavedSearch()` helpers + `GET/POST/DELETE /api/workspace/shared-saved-searches` routes + matching v1 mirrors with `asUserId` attribution defaulting to workspace owner. The `WorkspaceSearch` client component surfaces shared chips in a teal-tinted row (visually distinct from rev-18 personal grey chips) below the personal saved row in the dropdown when query is empty. New 'Share with team' footer button (Users icon, gated to editor+) lets the operator promote their current query into the workspace-shared list with one tap + a name prompt. **Strategic significance**: rev-18 personal saved searches are per-user-per-workspace localStorage โ drift across devices and don't cross between teammates. Workspace-shared lets multi-operator teams curate a power-user search vocabulary that every member inherits ('competitor X', 'concern', 'renewal Q3') without re-typing on every machine. Distinct from rev-18 โ both surfaces coexist so an operator's personal queries stay private. Pairs with the rev-78 multi-device sync of personal panel collapse + rev-78/79/80/81 dashboardPrefs personal config as the cross-device dashboard collaboration story.
- Bulk pause/resume/delete on outbound subscriptions โ closes six-entity bulk-action symmetryNew `bulkUpdateOutboundSubscriptions()` helper + `POST /api/workspace/outbound/bulk` route + matching `POST /api/v1/outbound/subscriptions/bulk` v1 mirror. New bulk-action bar surfaces inline in the rev-19 OutboundSubscriptions client component when 2+ subscriptions exist + 1+ is selected, with Pause / Resume / Delete buttons + Select all visible / Clear actions. New checkbox column on every subscription row when โฅ2 subscriptions exist. Caps at 50 subscription IDs per call. Activity log records every bulk action with the affected count. **Strategic significance**: rev-26 task bulk + rev-33 signal bulk + rev-34 memory bulk + rev-36 source bulk + rev-6 artifact bulk shipped on the four core entities + sources. Rev 19 turned outbound delivery into a real per-event router but bulk operations on the subscription axis itself were missing โ operators with 8+ subscriptions (e.g. a FinOps team mirroring different events to different downstream URLs across multiple staging environments) cycled them one click at a time. Rev 93 collapses that to one selection + one action. Closes the six-entity bulk-action symmetry across every CRUD surface on the dashboard.
- Visual polish โ work-log share page + shared-search chip + bulk-action bar all anchored in the brand-color vocabularyNew `.ld-share-worklog-*` CSS treatment for the rev-93 public work-log page uses the same brand-green left-border + soft gradient as the rev-42 source-evidence panel + rev-44 revision-history panel so the three governance surfaces on `/share/*` read with one consistent visual vocabulary. Per-cycle work log rows wear a brand-color marker; per-operator note rows wear an amber `#cf6c3a` marker so the eye scans the cycle โ note alternation cleanly. New stats grid (cycles + operator notes + total tokens + estimated AI cost) anchors the procurement-evidence framing at the top of the takeaway. New `.ld-search-shared-chip` teal-tinted treatment distinguishes workspace-shared chips from rev-18 personal grey chips. New `.ld-outbound-bulk-bar` matches the rev-26/33/34/36 bulk-bar typography + brand-color accent + animation so the six bulk surfaces read as siblings. Print stylesheet extended to cover the rev-93 work-log surface: `.ld-share-worklog-stats` strips background / picks up borders, rows + foot read cleanly without screen chrome bleed-through. Cumulative micro-polish โ every rev 22+ has carried at least one. **Strategic significance**: rev 93's polish is load-bearing because three new surfaces ship in one cycle and need to read with one consistent visual story so the dashboard doesn't acquire the design-debt smell that hand-rolled SaaS dashboards usually develop after 93 revs.