What shipped, when, and why.
Releases land here on the day they go out. Versioned by semver — patches every week or two, minors when something is worth noticing, majors when we change a contract.
-
Feature v1.3.0 Workspace presence guard, plan-intent hand-off, public sales-leads endpoint
The marketing-site sign-up chain ships behind a feature flag — the SPA is ready when the front door opens it.
- New
_authenticated.tsxbeforeLoadworkspace-presence guard with explicit decision matrix (pending invitation →/invitations/<token>; ≥1 workspace → continue; 0 workspaces + 0 invitations →/onboarding). - New
/<locale>/get-startedpublic route that captures the plan intent insessionStorage:rqd:plan-intentand bounces to Keycloak. - New
/<locale>/_authenticated/onboardingroute — explicit, owner-initiated workspace creation only. No auto workspace generation, ever. subscription.tsxis no longer a stub — renders plan tiers fromplansQueryOptions(), reads?planfrom the URL, wires Apply toPOST /subscriptions/resubscribe.- New public
POST /api/v1/public/sales-leadsendpoint. Cloudflare Turnstile validated server-side, creates a ticket in the seeded internal Sales project, fires notification. - Resolves the long-standing invitation/workspace-context bug: invited members now land in the workspace they were invited to, not their previous active workspace.
- New
-
Fix v1.2.22 Widget IIFE bundle re-inlines ofetch
Fixes the ReferenceError on widget 1.2.20 / 1.2.21. Both broken versions are now de-listed from the CDN; pinned consumers should bump.
- Widget IIFE bundle now inlines
ofetchand the workspace siblings — fixes theReferenceErrorthrown on first interaction in 1.2.20 and 1.2.21. - 1.2.20 and 1.2.21 are now intentionally absent from the CDN retention list. Sites pinned to those versions will receive a 404 instead of silently 500-ing.
- Added a Vitest IIFE smoke test that loads the bundle in JSDOM and asserts the widget renders. Runs on every widget change.
- Filament plugin
script_url_defaultbumped to 1.2.22 — a fresh plugin tag is queued for the next release window.
- Widget IIFE bundle now inlines
-
Feature v1.2.0 SLA pause for waiting-on-customer, pre-breach alerts
SLA targets now pause when a ticket is waiting on the customer, and the assignee gets a 15-minute pre-breach ping.
- SLA clocks now pause automatically when a ticket transitions to “waiting on customer”, and resume on the customer’s reply. Total counted time excludes customer-side wait.
- Assignees receive a notification 15 minutes before any SLA target is due. Their manager receives a notification 5 minutes before. Both are configurable per workspace.
- New “SLA proximity” sort order on the list view — most-urgent-first.
- Per-category SLA targets are now configurable from the UI (previously settings-file only).
-
Feature v1.1.0 Timeline view, saved slices, bulk actions
A fourth view (timeline) joins list, board, and table. Filters are URLs. Bulk actions land without dropdown maze.
- New timeline view — horizontal calendar of when tickets were opened, replied to, and closed. Useful for spotting time-of-day patterns and for upward reporting.
- Saved slices — every filter combination produces a stable URL. Bookmark, share, embed in a runbook. Workspace owners can pin shared slices to the sidebar.
- Bulk actions on list and table views — select up to 250 tickets, set status / owner / priority / tag without paging through dropdowns. Every bulk action is one row in the audit log.
- Performance: list view rendering is now ~3x faster on workspaces with >5,000 open tickets.
-
Feature v1.0.0 Reqdesk 1.0 — bilingual from day one
First public release. Tickets, the embeddable widget, the customer portal, the four views, RBAC, audit log, in EN and AR.
- Tickets — full CRUD, replies, attachments, tags, categories, custom fields, audit log on every change.
- Widget — embeddable IIFE bundle on
cdn.reqdesk.support/widget/<version>/, RTL-aware, theme-aware, Turnstile-protected. - Customer portal — every ticket reachable by the customer who opened it. SLA targets visible. No second login flow.
- Four views — list, board, table; the timeline view follows in 1.1.
- RBAC — owner / agent / member / customer roles, per-workspace isolation enforced at the query layer.
- Audit log — every ticket change, member change, and project setting recorded with actor, target, and outcome.
- Bilingual UI — EN and AR, with RTL native via CSS Logical Properties.
- Keycloak SSO — sign-in brokered by
auth.mod-sol-sa.com, themed to match the Reqdesk brand.