- Memory bulk operations (close 4-entity bulk symmetry)Outputs got bulk approve/archive in rev 6; tasks in rev 26; signals in rev 33; rev 34 closes the symmetry on the fourth core entity. Memory entries now have the same checkbox column + bulk action bar β Pin / Unpin / +Tag / βTag / Delete / Select all visible. The +Tag and βTag actions take a tag-name input so an operator can normalise a fragmented tag set in one pass (e.g. fix every memory tagged 'q3launch' to 'q3-launch'). Capped at 50 entries per call. New POST /api/memory/bulk-update endpoint distinct from the rev-22 bulk-import path.
- Reactions on signals (close 4-entity reaction symmetry)Comment reactions shipped rev 29; output + memory reactions shipped rev 33. Signals were the last surface without the lightweight π / π / π― / β€οΈ / π ack vocabulary. Rev 34 closes the symmetry β operators can now ack a fresh competitor move ('π saw it, not urgent') or a customer-feedback signal ('β€οΈ thanks') without promoting it to a task or writing a comment. Mounts inline on every signal row. New endpoints POST /api/signals/:id/reaction (dashboard, editor+) and the v1 mirror POST /api/v1/signals/:id/reaction so the upcoming MCP server inherits the surface.
- Mention read-receipts (workspace-shared 'I've got this' state)Rev 30 added the per-user mention inbox; rev 32 added inline reply. Until rev 34 the inbox state was per-user-only (localStorage dismiss) β a multi-operator team had no way to see whether a mention had been actioned by anyone. Rev 34 adds workspace-shared mention acks: tap 'π I've got this' on any unread mention and your name + timestamp pin to the comment so every other teammate sees who's already on it. Distinct from per-user dismiss (which still lives in localStorage); distinct from comment reactions (which ack the comment generally, not the call-to-action specifically). New POST /api/tasks/:taskId/comments/:commentId/ack endpoint. The acked mention gets a soft brand-color left border + an ack-pill in the header showing the first acker's name + count.
- Today/yesterday delta on the Today panelRev 33 introduced the Today snapshot panel β single-glance morning answer to 'what happened on the desk while I was away?'. Rev 34 layers the missing context β every stat now shows a tiny day-over-day delta chip (β² 3 vs yesterday, βΌ 2, or Β· same). For count stats (signals/cycles/outputs) up reads green; for spend, up reads amber (more $ = warning) and down reads green (less $ = good). One getTodaySnapshot query window extended; no new schema, no new round-trip. Pairs with the rev-21 cost-cap warning + rev-32 cost-spike detector for the full descriptive β defensive cost story.