Repository navigation
Releases: dallasread/d
Release list
v0.2.4 - Email Security Analysis & Enhanced DNSSEC Visualization
This release introduces comprehensive email security analysis and significantly improves DNSSEC trust chain visualization with color-coded arrows.
What's New
- Email Security Tab: New dedicated tab with MX, SPF, DKIM, and DMARC record analysis
- Enhanced DNSSEC Visualization: Color-coded trust chain arrows with multi-arrow support for complex delegation
paths - Improved WHOIS Parsing: Support for 13+ date formats including incomplete ISO timestamps
- UI Refinements: Reorganized registration card layout, improved HTTP tab logging, better cursor styles
Improvements
- DNSSEC status indicators in card headers
- Root zone DNSKEY parsing with proper format handling
- Registration card consolidation with better date presentation
- HTTP tab now shows all related curl logs
Bug Fixes
- Fixed WHOIS date parsing for incomplete ISO timestamps (e.g., 2010-04-07T17)
- Removed hardcoded mock data to prevent stale information display
v0.2.3 - Cache Busting and UX Improvements
What's New
Bug Fixes
- Cache busting on domain change: Switching domains now clears all cached data, ensuring no stale references to previous domains
- Fixed log display: Curl logs correctly show different commands (from v0.2.2)
UX Improvements
- Simplified HTTP redirect links: Clicking redirect hops now opens the logs panel without trying to find specific logs
- Redesigned Email tab: Modern card-based layout with security diagnostics (from v0.2.2)
Installation
macOS (Apple Silicon)
- Download
D_v0.2.3_aarch64.dmg - Double-click to mount
- Drag
D.appto Applications - Open from Applications (allow in System Settings on first run)
Full Changelog: v0.2.2...v0.2.3
v0.2.2 - UI Fixes and Documentation Updates
What's New
Bug Fixes
- Fixed log display issue: Curl logs in the log viewer now correctly display different commands instead of showing the same command for all entries
- Improved Vue reactivity: Added proper key bindings to prevent DOM element reuse in log accordion
UI Improvements
- Redesigned Email tab: Modern card-based layout with Tailwind components matching the rest of the application
- Email security visualization: Added color-coded security score and diagnostic cards for MX, SPF, DKIM, and DMARC
Documentation
- Updated for Tauri: All build and release documentation now reflects the Tauri-based build process
- Removed Python artifacts: Cleaned up legacy Python/PyInstaller scripts and documentation
- Simplified version management: Updated VERSION_BUMP_CHECKLIST.md for package.json, tauri.conf.json, and Cargo.toml
Installation
macOS (Apple Silicon)
- Download
D_v0.2.2_aarch64.dmg - Double-click to mount the DMG
- Drag
D.appto your Applications folder - Open from Applications (on first run, go to System Settings → Privacy & Security to allow)
Requirements
- macOS 10.15 (Catalina) or later
- Apple Silicon (M1/M2/M3) Mac
Known Issues
- DMG is currently built for Apple Silicon only (Intel and Universal builds coming soon)
- App is not code-signed (you may need to allow it in System Settings on first run)
Full Changelog: v0.2.1...v0.2.2
v0.2.1 - Accurate Per-Hop HTTP Redirect Timing
🚀 New Features
Accurate Per-Hop Response Times
- Individual redirect timing: Each redirect hop is now timed separately with accurate measurements
- Total time in header: Overall response time displayed in the card header for quick reference
- Per-hop display: Each redirect row shows its individual response time
- Final destination timing: The final response also shows its individual timing
How It Works
The HTTP adapter now follows redirects manually (instead of using curl -L), making individual requests for each hop and timing them separately. This provides accurate, actionable timing data for debugging slow redirects.
Example:
🌐 http://example.com 411ms ← Total
301 http://example.com 125ms
301 https://example.com 89ms
200 https://example.com/ 197ms
🐛 Bug Fixes
- Removed unused TypeScript functions causing build errors
- Cleaned up git repository by excluding Rust build artifacts
🔧 Technical Details
- Refactored HTTP adapter to manually follow redirects with individual timing
- Added
response_timefield toHttpRedirectmodel (Rust + TypeScript) - Enhanced
HTTPResponsecomponent to display total time in header - Updated
RedirectChaincomponent with per-hop timing display - Improved
.gitignoreto excludetarget/directories
📦 Installation
macOS (Apple Silicon):
Download D.app from the assets below and move to your Applications folder.
Full Changelog: v0.2.0...v0.2.1
D v0.2.0 - Tauri GUI Release
🎉 Major Release: Desktop GUI Application
This is a major release that replaces the Python terminal UI with a modern desktop application built with Tauri and Vue 3.
✨ What's New
Desktop GUI Application
- Modern Desktop Interface - Native macOS application with beautiful dark theme UI
- Interactive Dashboard - At-a-glance health overview with color-coded status indicators
- Real-time Data Loading - Async data fetching with progress indicators
- Keyboard Navigation - Number keys (1-7) to jump between panels, R to refresh, L for logs
Visual DNSSEC Chain Visualization
- Complete chain display - Shows root → TLD → domain with all zones
- Hand-drawn style arrows - Organic, flowing arrows connecting DS records to DNSKEYs
- Color-coded key tags - Rotating colors for easy visual matching
- RRSIG signatures - Cryptographic signatures displayed with matching arrows to DNSKEYs
- Clean, modern design - Dark background sections with clear hierarchy
Custom App Icon
- Distinctive branding - Dark circle with white "D" letter
- Orange triangle accent - Prominent orange triangle in top-right corner
- Universal binary icon - Optimized for both Retina and standard displays
Enhanced Features
- Certificate Panel - SSL/TLS certificate inspection with chain validation
- HTTP/HTTPS Panel - Status codes, redirects, response times
- Registration Panel - WHOIS/RDAP data with expiration tracking
- Email Panel - MX record display (SPF/DKIM/DMARC coming soon)
- Command Logs - View all backend commands (dig, openssl, curl) with full output
Dashboard Cards
Each card shows real-time status:
- DNS - A, AAAA, MX, NS record counts
- Registration - Domain expiration countdown
- DNSSEC - Validation status and chain depth
- Certificate - Days until expiration
- HTTP/HTTPS - Status code and response time
- Email - MX record count and hostnames
🔧 Technical Improvements
Architecture
- Tauri Framework - Rust backend with Vue 3 TypeScript frontend
- Universal Binary - Single app works on both Intel and Apple Silicon Macs
- Pinia State Management - Reactive state stores for all data
- Vue Router - Smooth navigation between panels
- Tailwind CSS - Modern, responsive styling
Backend Fixes
- Certificate Parsing - Fixed PEM parsing by writing to openssl stdin instead of shell echo
- Store Caching - Proper clearing of all stores when domain changes
- Error Handling - Better error messages and fallback behavior
Build System
- macOS Build Script -
build-macos.shcreates universal binary with DMG - Native DMG Creation - Uses macOS's built-in
hdiutilfor reliable DMG generation - ZIP Distribution - Compressed archive for easy distribution
📦 Installation
Via DMG (Recommended)
- Download
D_0.2.0_universal.dmg - Open the DMG file
- Drag D.app to Applications folder
Via ZIP
- Download
D-macos-universal.zip - Extract the archive
- Copy D.app to /Applications
Via Direct App Bundle
- Download
D.app.zip - Extract and run directly
🖥️ System Requirements
- macOS 10.15 Catalina or later
- Intel or Apple Silicon Mac
- Required tools: dig, openssl, whois, curl (install via Homebrew)
brew install bind openssl whois curl🗂️ Legacy Python TUI
The original Python terminal UI is still available in the legacy/ directory for users who prefer command-line interfaces. See legacy/README.md for documentation.
🔗 What's Included
D.app- Universal macOS application (works on Intel and Apple Silicon)D_0.2.0_universal.dmg- DMG installer (8.0 MB)D-macos-universal.zip- ZIP archive (7.1 MB)
🐛 Known Issues
- DMG window positioning may not apply correctly on CI/CD platforms (cosmetic only)
- Email security features (SPF, DKIM, DMARC) are placeholder - coming in future release
🙏 Acknowledgments
Built with:
- Tauri - Rust-based desktop framework
- Vue 3 - Progressive JavaScript framework
- TypeScript - Typed JavaScript
- Tailwind CSS - Utility-first CSS framework
- Heroicons - Beautiful hand-crafted SVG icons
Full Changelog: v0.1.2...v0.2.0
Documentation & Developer Experience Improvements
📚 What's New
This release focuses on improving the developer experience and ensuring consistent version management across the codebase.
🔧 Improvements
Version Management
- Added Version Bump Checklist: New
VERSION_BUMP_CHECKLIST.mddocument that clearly outlines all files that need updating when releasing a new version - Documented Dual-Version Requirement: Clarified why both
pyproject.tomlandsrc/dns_debugger/__main__.pymust be updated (Click doesn't auto-read from pyproject.toml) - Added Quick Reference Commands: Included grep/ripgrep commands to find all version references in the codebase
Project Documentation
- Added
.claude/CLAUDE.md: Project-specific context file for AI assistants with comprehensive project information including:- Architecture patterns (Clean/Hexagonal Architecture)
- Build system details
- Common pitfalls and tips
- Version management reminders
- Project structure overview
- Key documentation references
🐛 Bug Fixes
- Fixed version display in binary - now correctly shows 0.1.2 instead of 0.1.0
📦 Download
The d binary is included in this release (17MB, macOS ARM64).
Installation
# Download the binary
curl -L https://github.com/dallasread/d/releases/download/v0.1.2/d-v0.1.2-darwin-arm64.tar.gz -o d.tar.gz
# Extract
tar -xzf d.tar.gz
# Make executable
chmod +x d
# Optional: Install system-wide
sudo mv d /usr/local/bin/Usage
d example.com
d --version # Should now show: d, version 0.1.2Requirements
- macOS ARM64 (Apple Silicon)
digcommand (usually pre-installed)opensslcommand (usually pre-installed)
For Developers
If you're contributing to this project:
- Before bumping versions, read
VERSION_BUMP_CHECKLIST.md - For project context, check
.claude/CLAUDE.md - For build instructions, see
BUILD_INSTRUCTIONS.md
What's Changed
- Bump version to 0.1.2 by @dallasread
- Add .claude/CLAUDE.md for project-specific AI context by @dallasread
- Add VERSION_BUMP_CHECKLIST.md documentation by @dallasread
- Fix version display in pyproject.toml and main.py by @dallasread
Full Changelog: v0.1.1...v0.1.2
Previous Releases
For v0.1.1 changes (DNSSEC improvements, NS caching, performance optimizations), see v0.1.1 release notes.
Performance & DNSSEC Improvements
🚀 Performance Improvements
- NS Caching: Added smart caching for authoritative nameserver lookups - eliminates redundant DNS queries and prevents loading indicator flashing
- Cache Busting: Press
rto refresh and clear all caches for fresh data - Faster Loading: Reduced HTTP/HTTPS timeouts from 10s to 5s
- Faster Certificate Checks: Optimized OpenSSL certificate validation (~17s → ~8s per domain)
- Removed slow TLS version probing, cipher suite detection, and OCSP checks
- Improved timeout handling for unresponsive hosts
🔒 DNSSEC Fixes
- Accurate Validation: Now correctly detects mismatched DS/DNSKEY records (broken DNSSEC chains show as BOGUS instead of SECURE)
- Parent Zone Queries: DS records are now queried from the correct parent zone's authoritative nameservers
- Better Visualization: Fixed dangling connection lines in DNSSEC chain visualization
- Neutral RRSIG Indicator: Changed RRSIG presence from positive indicator to neutral observation
🧹 Codebase Improvements
- Simplified DNS Stack: Removed dog adapter - now uses dig exclusively for better compatibility
- Cleaner Code: Removed unnecessary progress callbacks that caused UI flashing
📦 Download
The d binary is included in this release (17MB, macOS ARM64).
Installation
# Download and make executable
curl -L https://github.com/dallasread/d/releases/download/v0.1.1/d -o d
chmod +x d
# Optional: Install system-wide
sudo mv d /usr/local/bin/Usage
d example.comRequirements
- macOS ARM64 (Apple Silicon)
digcommand (usually pre-installed)opensslcommand (usually pre-installed)curlorwgetcommand
What's Changed
- Build v0.1.1 binary with NS caching improvements by @dallasread
- Add cache busting when pressing 'r' to refresh by @dallasread
- Add caching for authoritative nameserver lookups to prevent flashing by @dallasread
- Fix DS record queries to use parent zone's authoritative nameservers by @dallasread
- Change RRSIG message to neutral indicator by @dallasread
- Remove dog adapter and use dig exclusively by @dallasread
- Fix DNSSEC validation to detect mismatched DS/DNSKEY records by @dallasread
- Reduce HTTP and certificate check timeouts for faster loading by @dallasread
- Fix dangling lines in DNSSEC visualization and improve cert check performance by @dallasread
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Full Changelog: https://github.com/dallasread/d/commits/v0.1.0