Skip to content

usertour

v0.8.3 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

announcements appcues chameleon checklist in-app nps
+8 more
onboarding pendo surveys tooltips tour userflow userpilot walkme

Affected surfaces

auth breaking_upgrade

ReleasePort's take

Light signal
editorial:auto 7d

The release consolidates @usertour/ui packages and fixes several UI bugs; it also removes the insecure default ENCRYPTION_KEY fallback.

Why it matters: All operators must explicitly set ENCRYPTION_KEY before upgrading, avoiding a security regression that affects deployments using the previous insecure development key.

Summary

AI summary

UI hardening for viewer role, soft‑deleted content handling, and @usertour/ui consolidation.

Changes in this release

Breaking High

Removes the insecure 'development-key-not-secure' fallback for ENCRYPTION_KEY; operators must set the env var explicitly.

Removes the insecure 'development-key-not-secure' fallback for ENCRYPTION_KEY; operators must set the env var explicitly.

Source: llm_adapter@2026-05-28

Confidence: high

Feature Low

Collapses 38 @usertour/ui component packages into a single package per ADR 0004.

Collapses 38 @usertour/ui component packages into a single package per ADR 0004.

Source: llm_adapter@2026-05-28

Confidence: high

Feature Low

Viewer‑role members see a clean read‑only list without row checkboxes or bulk‑action buttons on users/companies tables.

Viewer‑role members see a clean read‑only list without row checkboxes or bulk‑action buttons on users/companies tables.

Source: granite4.1:30b@2026-05-28-audit

Confidence: low

Feature Low

User/company filter‑save dialogs have aligned double‑submit and view‑only guards across surfaces.

User/company filter‑save dialogs have aligned double‑submit and view‑only guards across surfaces.

Source: granite4.1:30b@2026-05-28-audit

Confidence: low

Feature Low

Sessions tied to deleted content display a "Deleted" badge on user‑detail Sessions tab and session‑detail page for historical analytics.

Sessions tied to deleted content display a "Deleted" badge on user‑detail Sessions tab and session‑detail page for historical analytics.

Source: granite4.1:30b@2026-05-28-audit

Confidence: low

Bugfix Medium

Removes hardcoded English literals; UI strings now flow through i18n for non‑English users.

Removes hardcoded English literals; UI strings now flow through i18n for non‑English users.

Source: llm_adapter@2026-05-28

Confidence: high

Bugfix Medium

Eliminates duplicate DOM id="date" in DateRangePicker instances on content analytics page.

Eliminates duplicate DOM id="date" in DateRangePicker instances on content analytics page.

Source: llm_adapter@2026-05-28

Confidence: high

Bugfix Medium

Shows error toast when saving SegmentEditDialog with missing segment ID instead of dead‑buttoning.

Shows error toast when saving SegmentEditDialog with missing segment ID instead of dead‑buttoning.

Source: llm_adapter@2026-05-28

Confidence: high

Bugfix Medium

Corrects bulk delete/remove toast to display confirmed selection count when server returns nullable count.

Corrects bulk delete/remove toast to display confirmed selection count when server returns nullable count.

Source: llm_adapter@2026-05-28

Confidence: high

Bugfix Medium

Prevents misattribution of post‑save refetch failure as "save failed" in useSaveCompanySegmentFilter.

Prevents misattribution of post‑save refetch failure as "save failed" in useSaveCompanySegmentFilter.

Source: llm_adapter@2026-05-28

Confidence: high

Bugfix Low

Segment rename dialog no longer refetches segment list on Cancel/Escape, preventing table flashes.

Segment rename dialog no longer refetches segment list on Cancel/Escape, preventing table flashes.

Source: granite4.1:30b@2026-05-28-audit

Confidence: low

Bugfix Low

Selecting a row on a MANUAL segment in the companies page no longer triggers an error boundary.

Selecting a row on a MANUAL segment in the companies page no longer triggers an error boundary.

Source: granite4.1:30b@2026-05-28-audit

Confidence: low

Bugfix Low

Content detail pages render a "404 / This content has been deleted" placeholder for soft‑deleted flows/checklists etc.

Content detail pages render a "404 / This content has been deleted" placeholder for soft‑deleted flows/checklists etc.

Source: granite4.1:30b@2026-05-28-audit

Confidence: low

Full changelog

Hardens the segments / users / companies surface and lands a workspace-wide UI package consolidation.

✨ Highlights

  • Viewer-role members get a clean read-only list. Row checkboxes and bulk-action buttons (add to manual segment, remove, delete) no longer appear on the users / companies tables for viewer-role accounts — no more grey buttons or fake affordances they can't act on.
  • Segment dialogs settle down. The rename dialog no longer refetches the segment list on Cancel / Escape (used to flash the table); selecting a row on a MANUAL segment on the companies page no longer hits the error boundary; double-submit and view-only guards aligned across the user / company filter-save dialogs.
  • Soft-deleted content surfaces correctly. The content detail page renders a "404 / This content has been deleted" placeholder instead of going blank for deleted flows / checklists / etc. Sessions tied to deleted content now carry a "Deleted" badge on the user-detail Sessions tab and the session-detail page so historical analytics stay legible.
  • @usertour/ui consolidation (ADR 0004). The 38 per-component packages under packages/components// (button, dialog, popover, ...) collapse into a single @usertour/ui aligned with shadcn's single-directory convention. @usertour/frame is kept standalone so the embedded SDK / widget bundles stay unaffected — SDK usertour.js is byte-identical to the v0.8.2 build. See docs/adr/0004 for the full migration story.

🐛 Fixes

  • Non-English users no longer see hardcoded English literals from shared UI primitives — date-range picker presets, locale selector
    placeholders, and content-loading spinner messages now flow through i18n.
  • Two DateRangePicker instances on the content analytics page (header + tooltip-target-missing dialog) no longer share a duplicate DOM id="date" — axe / lighthouse no longer flag the a11y violation.
  • SegmentEditDialog's Save with a missing segment id now surfaces an error toast instead of silently dead-buttoning.
  • Bulk delete / remove toasts no longer render "0 users deleted" on a successful action when the server's count field comes back nullable — falls back to the confirmed selection count.
  • useSaveCompanySegmentFilter no longer misattributes a post-save refetch failure as "save failed".
  • ENCRYPTION_KEY is wired through config and the in-service 'development-key-not-secure' fallback is removed — operators must set the env var explicitly (production deployments unaffected).

Full Changelog: https://github.com/usertour/usertour/compare/v0.8.2...v0.8.3

Breaking Changes

  • ENCRYPTION_KEY environment variable is now required; the 'development-key-not-secure' fallback has been removed.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track usertour

Get notified when new releases ship.

Sign up free

About usertour

Usertour is an open-source user onboarding platform. It allows you to create in-app product tours, checklists, and surveys in minutes—effortlessly and with full control.The open-source alternative to Userflow and Appcues

All releases →

Related context

Earlier breaking changes

  • v0.7.5 All 60 workspace packages move to @usertour/* from @usertour-packages/*

Beta — feedback welcome: [email protected]