v0.4.6
April 25, 2026
Fixes
Fixed
- Backup export — "Export backup" button now correctly downloads a
quetix-backup-YYYY-MM-DD.json file. The previous anchor-tag approach used a relative URL and was silently blocked by browsers for cross-origin API servers. Now uses fetch() + Blob + URL.createObjectURL() with the auth token attached. Button shows "Exporting…" while in-flight.
- Ticket exports (CSV / JSON / Markdown) — same cross-origin download fix applied to the Export dropdown on the Tickets page.
- Export filenames — server was still generating
intray-tickets-* filenames (old app name). Renamed to quetix-tickets-* and quetix-backup-*.
v0.4.5
April 25, 2026
Feature
Added
- Save / cancel pattern across all editable sections — all field edits are now buffered locally and require an explicit Save changes action before persisting. An amber "unsaved changes" bar with Save / Discard appears whenever there are pending changes. Applies to Tickets, Users, Groups, and Sources.
- Tickets — status, priority, category, assigned-to, subject, and notes are staged locally. Unsaved fields are highlighted with an amber ring. A sticky amber bar appears between the modal header and the scrollable body.
- Users — pencil icon opens a full inline edit row. Amber "unsaved changes" badge shown in the header when dirty. Delete moved inside the edit row.
- Groups — permission toggles are buffered per group. Each group card gets an amber ring + per-card Save / Discard bar when permissions are dirty. Changed checkboxes shown in amber to distinguish staged from saved state.
- Sources — pencil icon expands an inline edit panel. Amber badge shown when dirty. Delete moved inside the panel.
v0.4.4
April 25, 2026
Fixes
Fixed
- Backup / restore —
org_units now included in backup and restore. Restore no longer silently drops rows on primary-key conflicts (INSERT OR REPLACE). FK checks disabled during bulk load to prevent ordering failures. Default settings, groups, and counters re-seeded after restore. Skipped-row errors surface as warnings in the response.
- Restore confirm dialog — now shows ticket, source, and user counts plus the backup export date before overwriting.
v0.4.3
April 25, 2026
Feature
Added
- Production VPS — API now live at
https://quetix.souriapps.net (Vultr Dallas) with SSL via Let's Encrypt.
- iOS standalone app — Capacitor iOS build bundles web assets. First-launch Server Setup screen pre-filled with the production URL; tap "Enter a different URL" for self-hosted instances.
- User profile panel — clicking the user avatar in the sidebar footer opens a popover with profile fields, per-feature access rights, and a Sign Out button.
- Dashboard greeting widget — dark hero card with live clock, time-aware greeting, rotating quote bank, and a Customize modal. Preferences persisted to
localStorage.
- Settings save/cancel flow — all settings fields track pending changes. A sticky amber bar with Save / Discard appears when anything is modified.
v0.4.6
April 23, 2026
Brand + assets
Added
- Official logo & icon set — "Mid-drop" mark (two fanned ticket cards above the inbox tray with a third ticket in motion). Sky Cyan gradient. Locked in
BRAND.md.
- Full AppIcon.appiconset — 1024 light/dark/tinted + all macOS sizes (16/32/128/256/512 at 1× and 2×). Flattened 1024 for ASC, alpha-preserved tinted for iOS 18.
- App Clip target scaffold —
net.quetix.souriapps.Clip SwiftUI WebView preview at client/ios/Clip/. Includes Info.plist, Clip.entitlements, 1024 icon, and a README with the 10-minute Xcode wiring.
- Associated domains —
/.well-known/apple-app-site-association live at this subdomain for universal links and App Clips (/ticket/*, /clip/*, /share/*).
- Promo strips — 1600×900, 2400×1200, 1200×630 (OG), 1080×1080 (social). Used for
og:image + twitter:card + ASC featured artwork.
- generate_app_icons.py — one-command regeneration of every icon and promo strip (Pillow-based).
v0.3.0
April 23, 2026
Minor release
Added
- Real Settings page — workspace name, font family (10 options), font-size slider (12–20px), timezone picker with browser auto-detect, date-format presets, and a live preview of typography.
- Authentication — optional login gate with admin + member roles. First-time setup creates an admin account; subsequent users are invited from the Users page.
- Users & Groups — admin-only CRUD for team members and permission groups. Three default groups (Admins / Agents / Viewers) plus custom groups with granular permissions (
tickets.read, tickets.write, rules.write, sources.write, analytics.read, settings.manage, users.manage, etc.).
- Backup & restore — one-click export of the entire workspace as JSON (tickets, sources, rules, users, groups, settings) and restore from a previous backup file.
- Export menu on Tickets — CSV, JSON, Markdown, and "Copy share link" in a single dropdown.
- Re-extract ticket — one-click re-run of the extractor + rules engine on any existing ticket from the new AI Extractors page.
- AI Extractors page — extraction confidence buckets (high/medium/low), average confidence stat, and a recent-extractions table with per-ticket re-run.
- Date & timezone formatting — every timestamp in the app now respects the workspace timezone and date-format preference, with auto-detect from the browser.
- Bigger footer — 4-column layout with product, legal, and company sections, version tag, and contact addresses.
Security
- Passwords hashed with bcrypt (cost factor 10). Sessions expire after 30 days. Admin role required for users/groups endpoints.
v0.2.0
April 23, 2026
Minor release
Added
- Rules engine — match incoming tickets by category, priority, sender, or subject; override priority, routing, or status automatically. Rules apply on ingestion in priority order with hit-count tracking.
- Inbox view — surfaces tickets with extractor confidence < 70% or no routing set, so they're the first thing you triage in the morning.
- Contacts page — aggregated per-email view with ticket count, urgent count, sentiment history, and last-seen.
- Analytics — 14-day ticket-volume bar chart, priority distribution, category mix, extractor-confidence buckets, and top-company leaderboard.
- CSV export — one-click export of every ticket and every field.
Changed
- IMAP ingestion and manual-from-email creation both route through the rules engine after Claude extraction, so rule actions overlay on extracted fields before the ticket is inserted.
v0.1.1
April 23, 2026
Patch
Added
- In-app Legal pages — Privacy, Terms, EULA, FAQ, Support — under
/legal/* and /help/*.
- Animated promo strip on Dashboard showing the Email → Claude → Ticket pipeline.
- Footer with legal links and version tag.
- Consistent entity reference — Souri Apps LLC (Souriya Bobby Vongchanh) — across all legal surfaces.
v0.1.0
April 23, 2026
Initial release
Added
- Monorepo scaffold —
client/ (Vite + React + TypeScript + Tailwind) and server/ (Express + TypeScript + SQLite).
- IMAP polling via
imapflow + mailparser (Gmail, Outlook, iCloud, custom IMAP).
- Claude-backed field extractor with prompt caching and heuristic fallback when no API key.
- Background sync loop — polls every 60 seconds by default.
- Dashboard, Tickets, Sources pages with New Ticket modal and source-connection wizard.
- Demo seed on first boot (3 tickets) so the dashboard is populated immediately.