Appearance
Changelog
All notable changes to the Pulse SDK (@gamention/pulse-shared, @gamention/pulse-core, @gamention/pulse-elements) and the Pulse server.
0.4.0 → 0.4.6 — 2026-07-06
One large polish release, shipped as a series of patches over a single day.
Pins & anchoring
- Robust pin anchoring (0.4.0). Pins are anchored with barycentric weights against three stable DOM landmarks, with a four-tier fallback (3 landmarks → 2 landmarks → element offset → document fraction). Pins survive responsive reflows and DOM changes far better than the previous single-selector scheme; existing pins continue to resolve.
- Pin dragging (0.4.0). Drag a pin to move it — the new position re-anchors, persists, and broadcasts to everyone in the room (
thread:move/thread:moved,client.updateThreadPosition()). - Only the pin's creator can move it (0.4.6). Enforced server-side; other users click to open the popover as usual, and non-movable pins no longer block page scrolling on touch.
- Anchor accuracy (0.4.5). Pins place their tail tip exactly on the clicked point instead of centering the body over it.
- Draft pin while composing (0.4.5). Clicking in pin mode drops the pin immediately; dismissing the composer removes it, posting keeps it.
Widget UX
- Notification navigation (0.4.1). Clicking a notification scrolls to the pinned thread and opens its popover; threads without a pin open highlighted in the comments panel.
- Host-CSS isolation (0.4.1). Pins, popovers, and pickers rendered into the host page's DOM carry a scoped style reset, so host stylesheets can no longer distort widget spacing or emoji sizes.
- Ink Cap headers (0.4.2). All panels and the pin popover share one header spec: dark cap, live-connection LED, monospace metadata. New tokens:
--pulse-header-bg,--pulse-header-text,--pulse-header-muted. - Delete confirmations (0.4.5). Deleting a comment asks first, with context-aware copy — removing a thread's only comment warns that the thread and its pin go too.
- Fit & finish (0.4.3–0.4.4). Reaction pills no longer stretch to 44px; buttons inherit the widget font; the overflow menu paints above open panels and closes on outside click; clicking outside Pulse UI closes open panels; you can't follow yourself; anchored popups no longer flash at the wrong position on first paint.
Server & platform
- Server-side config enforcement (0.4.0).
allowReactions,allowMentions,showTypingIndicators,allowDrawing,showCursors, andmaxAttachmentsPerCommentare enforced by the server, not just hidden in the UI. - Dark mode that works (0.4.0).
--pulse-surface-glassand--pulse-surface-solidtokens replace hardcoded white surfaces. - Removed the vestigial emoji-drop feature from the protocol, client, server, and docs (0.4.0).
- Admin panel: destructive actions and failed loads surface errors (toasts + retry states) instead of failing silently (0.4.0).
0.3.x
Initial public releases: threaded comments with pin-anywhere, live cursors, presence and follow mode, reactions, typing indicators, media attachments (image/audio/video), activity feed, notifications, multi-tenant admin panel, REST API, and optional P2P shared data structures (SharedMap, SharedList, SharedCounter) over WebRTC.