Releases: Surgical17/Smart-Notification-Router
v0.7.0.5
What's New
Wider Rule Builder Dialog
- Fixed dialog width override so the rule builder actually takes up 90% of viewport width
- Field path column widened for better visibility of field names
Navy Blue Light Mode
- Buttons, highlights, and accents now use dark navy blue instead of pure black
- Secondary and accent backgrounds have a subtle blue tint
- Focus rings use navy blue
- Text remains black for readability
Previous Changes (v0.7.0.3 - v0.7.0.4)
- SNR branding: logo on login, register, sidebar, and favicon
- Page title updated to "SNR - Smart Notification Router"
- Docker schema migration on startup (prisma db push)
- Password reset CLI script (docker exec node scripts/reset-password.mjs)
- Prisma CLI and dependencies included in Docker image
v0.7.0.2
What's New
Dark Blue Theme & Theme Toggle
- Added dark/light/system theme toggle in the header
- Dark mode now uses a dark blue color scheme instead of pure black
Rule Duplication
- Added duplicate button for both immediate and correlation rules
- Duplicated rules are created with a "(copy)" suffix and disabled by default
Wider Rule Builder
- Rule builder dialog expanded to 80% viewport width
- Match condition field path input widened for better readability
Admin Role System
- Added role field to user model (defaults to "admin")
- First registered user automatically becomes admin
- Registration is disabled after the first user signs up
- Login page conditionally shows the signup link only when no users exist
- Register page redirects to login if registration is closed
Other
- Added SNR logo to README
- Added /api/auth/registration-status endpoint
v0.7.0 - Rule Engine & Docker Fixes
Bug Fixes
Rule Matching for Complex Payloads
Fixed rule matching failing when comparing numbers from payloads against string values from the UI (e.g., Uptime Kuma's heartbeat.status: 0 not matching rule value "0")
Added type-coerced comparison for equals and not_equals operators
Fixed all numeric operators (greater_than, less_than, etc.) to properly parse string values
Docker Container
Fixed template database being hidden by Docker volume mount (smart-router-data:/app/prisma was shadowing the built-in template.db)
Template database is now stored at /app/template.db outside the volume mount path
Fixed Prisma schema and client inclusion in Docker image
Fixed DATABASE_URL environment variable for prisma db push during build
Clipboard Copy
Fixed webhook URL copy button not working in non-HTTPS contexts (e.g., http://localhost)
Added document.execCommand("copy") fallback for insecure contexts
New Features
Payload Field Autocomplete
Rule conditions now show autocomplete suggestions for field paths based on the last received webhook payload
Supports dot-notation nested fields (e.g., heartbeat.status, monitor.name)
New API endpoint extracts all available field paths with their values and types
Helper text guides users to send a test webhook to enable suggestions
Uptime Kuma Support
Added automatic server state detection for Uptime Kuma webhook payloads
Supports monitor.name as server identifier and heartbeat.status / monitor.status for online/offline detection
Channel Selection Dropdown
Replaced click-to-toggle badges with a proper dropdown multi-select for notification channel selection
Shows selected channels as removable badges below the dropdown
Auto-Refresh Logs
Webhook logs tab now auto-refreshes every 10 seconds
Added manual refresh button with spinning icon indicator
Full Changelog: Beta...v0,7
Beta Release v0.6.3
🔧 Bug Fixes
Fixed TypeScript Build Errors - Resolved all implicit any type errors that prevented production builds under strict type checking
📝 Type Safety Improvements
Added explicit type annotations to array method callbacks (.map(), .filter(), .reduce()) across multiple files
Exported NotificationResult interface from notification dispatcher for external use
Replaced any types in field correlation engine with proper Prisma-inferred types
Added type cast for correlation state status field to match union type definition
Added local interfaces (RecentLog, WebhookLog, etc.) for improved component type safety
📁 Files Updated
src/lib/correlation-engine.ts
src/lib/field-correlation-engine.ts
src/lib/notification-dispatcher.ts
src/app/(dashboard)/dashboard/page.tsx
src/app/(dashboard)/dashboard/channels/page.tsx
src/app/(dashboard)/dashboard/logs/page.tsx
src/app/(dashboard)/dashboard/webhooks/[id]/page.tsx
src/app/api/webhook/[uniqueUrl]/route.ts
src/components/rules/unified-rule-builder.tsx
src/components/rules/rule-builder.tsx
🐳 Docker
Pull the latest image:
docker pull ghcr.io/surgical17/smart-notification-router:main
🛠️ Technical Details
Compatible with Next.js 16.1.2 (Turbopack)
Prisma 6.19.2
Full TypeScript strict mode compliance
📦 Installation
npm install
npx prisma generate
npm run build
Full Changelog: v0.52.0...v0.6.3