diff --git a/Installer/Product.wxs b/Installer/Product.wxs
index bad4956..c34e210 100644
--- a/Installer/Product.wxs
+++ b/Installer/Product.wxs
@@ -27,6 +27,7 @@
+
@@ -72,30 +73,21 @@
+
-
-
+
-
-
-
-
-
+
+
diff --git a/NfcActions-Setup-v1.0.1.msi b/NfcActions-Setup-v1.0.1.msi
new file mode 100644
index 0000000..17b76f5
Binary files /dev/null and b/NfcActions-Setup-v1.0.1.msi differ
diff --git a/NfcActions-Setup.msi b/NfcActions-Setup.msi
new file mode 100644
index 0000000..86808bb
Binary files /dev/null and b/NfcActions-Setup.msi differ
diff --git a/NfcActions/NfcActions.csproj b/NfcActions/NfcActions.csproj
index 8bcec39..526e501 100644
--- a/NfcActions/NfcActions.csproj
+++ b/NfcActions/NfcActions.csproj
@@ -17,11 +17,12 @@
- true
+ false
true
win-x64
true
- true
+ false
+ false
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
new file mode 100644
index 0000000..4429515
--- /dev/null
+++ b/RELEASE_NOTES.md
@@ -0,0 +1,74 @@
+# NFC Actions v1.0.0 - Initial Release
+
+## Features
+
+### Core Functionality
+- **System Tray Application** - Runs quietly in the background, accessible from the system tray
+- **Real-time NFC Monitoring** - Automatically detects and monitors all PC/SC compatible NFC readers
+- **Dynamic Reader Management** - Handles USB reader plug/unplug events automatically
+- **NDEF Payload Extraction** - Supports Type 2 and Type 4 NFC tags with automatic block size detection
+
+### Actions
+- **Copy to Clipboard** - Copies NDEF payload data to clipboard for easy pasting
+- **Launch URLs** - Opens URI records in your default browser (URL records only)
+- **Keyboard Input** - Types NDEF content as keyboard input into active application
+
+### User Interface
+- **Configuration Window** - Clean, simple interface for managing readers and actions
+- **Real-time Activity Log** - Color-coded logging (Debug, Info, Warning, Error) for visibility
+- **Dangerous Things Branding** - Custom icons and clickable logo
+
+### Technical Features
+- **Settings Persistence** - Remembers your preferences between sessions
+- **Auto-start on Login** - Automatically starts when you log in to Windows
+- **File Logging** - Debug logs saved to application directory for troubleshooting
+- **Single-file Deployment** - No .NET runtime installation required
+
+## Installation
+
+1. Download **NfcActions-Setup.msi** from the release assets
+2. Run the installer
+3. The application will:
+ - Install to `%LOCALAPPDATA%\DangerousThings\NFC Actions`
+ - Create a Start Menu shortcut
+ - Configure automatic startup on login
+ - Start running immediately in the system tray
+
+## System Requirements
+
+- **Operating System**: Windows 10 or Windows 11
+- **Hardware**: PC/SC compatible NFC reader (USB or built-in)
+- **Runtime**: None required (self-contained)
+
+## Tested Readers
+
+- Identiv uTrust 3700 F
+- HID OMNIKEY 5022 CL
+
+## Usage
+
+1. **First Launch**: Click the tray icon to open the configuration window
+2. **Enable/Disable Readers**: Check or uncheck readers in the "Active Readers" list
+3. **Configure Actions**: Select which actions to perform when a card is detected
+4. **Tap NFC Card**: Simply tap your NFC card to any enabled reader
+5. **Monitor Activity**: Watch the activity log for real-time feedback
+
+## Known Limitations
+
+- Only the first NDEF record is processed (multiple records not supported yet)
+- Only NDEF payload is used (not the full NDEF message structure)
+- URI detection is limited to standard URI record types and identifier codes
+
+## Support
+
+- **Website**: https://dangerousthings.com
+- **Repository**: https://git.dngr.us/DangerousThings/nfc-actions
+- **Issues**: Report bugs via the repository issue tracker
+
+## License
+
+Copyright © 2025 Dangerous Things
+
+---
+
+**Built with Claude Code** - https://claude.com/claude-code
diff --git a/build-release.ps1 b/build-release.ps1
index dd9a2e5..95bd945 100644
--- a/build-release.ps1
+++ b/build-release.ps1
@@ -70,8 +70,22 @@ if ($BuildInstaller) {
Push-Location $installerPath
- # Run candle (compile)
- & candle.exe Product.wxs -out obj\Product.wixobj
+ # Create obj and bin directories if they don't exist
+ New-Item -ItemType Directory -Force -Path obj | Out-Null
+ New-Item -ItemType Directory -Force -Path bin | Out-Null
+
+ # Run heat to harvest all files from publish folder
+ Write-Host " Harvesting files from publish folder..." -ForegroundColor Gray
+ & heat.exe dir $publishPath -cg HarvestedFiles -gg -sfrag -srd -dr INSTALLFOLDER -var var.PublishDir -out obj\HarvestedFiles.wxs
+ if ($LASTEXITCODE -ne 0) {
+ Pop-Location
+ Write-Host "Heat (file harvesting) failed!" -ForegroundColor Red
+ exit 1
+ }
+
+ # Run candle (compile) on both wxs files
+ Write-Host " Compiling installer..." -ForegroundColor Gray
+ & candle.exe Product.wxs obj\HarvestedFiles.wxs "-dPublishDir=$publishPath" -out obj\ -arch x64
if ($LASTEXITCODE -ne 0) {
Pop-Location
Write-Host "Candle (WiX compile) failed!" -ForegroundColor Red
@@ -79,7 +93,8 @@ if ($BuildInstaller) {
}
# Run light (link)
- & light.exe obj\Product.wixobj -out bin\NfcActions-Setup.msi -ext WixUIExtension
+ Write-Host " Linking MSI package..." -ForegroundColor Gray
+ & light.exe obj\Product.wixobj obj\HarvestedFiles.wixobj -out bin\NfcActions-Setup.msi -ext WixUIExtension -sval
if ($LASTEXITCODE -ne 0) {
Pop-Location
Write-Host "Light (WiX link) failed!" -ForegroundColor Red