diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8ce5028..5831353 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [1.0.7] - 2026-05-02
+
+### Fixed
+- PassKey.Desktop is now published as a truly self-contained executable: the .NET 10 runtime is
+ bundled inside the installer and the portable ZIP. Users no longer need to install .NET separately.
+ The README claim "No .NET runtime required" is now accurate.
+
## [1.0.6] - 2026-05-01
### Changed
@@ -110,7 +117,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- **Giuseppe Imperato** — concept, design, product decisions
- **[Claude](https://www.anthropic.com/claude) by Anthropic** — architecture, implementation, documentation
-[Unreleased]: https://github.com/pexatar/PassKey/compare/v1.0.6...HEAD
+[Unreleased]: https://github.com/pexatar/PassKey/compare/v1.0.7...HEAD
+[1.0.7]: https://github.com/pexatar/PassKey/compare/v1.0.6...v1.0.7
[1.0.6]: https://github.com/pexatar/PassKey/compare/v1.0.5...v1.0.6
[1.0.5]: https://github.com/pexatar/PassKey/compare/v1.0.0...v1.0.5
[1.0.0]: https://github.com/pexatar/PassKey/releases/tag/v1.0.0
diff --git a/Installer/PassKey.iss b/Installer/PassKey.iss
index 3bd1dc4..4436142 100644
--- a/Installer/PassKey.iss
+++ b/Installer/PassKey.iss
@@ -4,8 +4,8 @@
[Setup]
AppId={{A7F3C2D1-8E4B-4F9A-B6D5-3C1E7A2F0D84}
AppName=PassKey
-AppVersion=1.0.6
-AppVerName=PassKey 1.0.6
+AppVersion=1.0.7
+AppVerName=PassKey 1.0.7
AppPublisher=Giuseppe Imperato
AppPublisherURL=https://github.com/pexatar/PassKey
AppSupportURL=https://github.com/pexatar/PassKey/issues
diff --git a/README.md b/README.md
index f746a3a..2967e84 100644
--- a/README.md
+++ b/README.md
@@ -57,8 +57,8 @@ PassKey stores your passwords, credit cards, identities, and secure notes in a l
| Version | Platform | Type |
|---------|----------|------|
-| [v1.0.6](https://github.com/pexatar/PassKey/releases/tag/v1.0.6) | Windows x64 | Installer EXE |
-| [v1.0.6](https://github.com/pexatar/PassKey/releases/tag/v1.0.6) | Windows x64 | Portable ZIP |
+| [v1.0.7](https://github.com/pexatar/PassKey/releases/tag/v1.0.7) | Windows x64 | Installer EXE |
+| [v1.0.7](https://github.com/pexatar/PassKey/releases/tag/v1.0.7) | Windows x64 | Portable ZIP |
> **Requirements:** Windows 10 version 1809 (build 17763) or later, x64 processor.
> No .NET runtime required — PassKey is fully self-contained.
diff --git a/publish.ps1 b/publish.ps1
new file mode 100644
index 0000000..272355d
--- /dev/null
+++ b/publish.ps1
@@ -0,0 +1,33 @@
+param(
+ [string]$Arch = "x64", # x64 | arm64
+ [string]$Config = "Release",
+ [string]$OutDir = ""
+)
+
+if ($OutDir -eq "") { $OutDir = "dist\$Arch" }
+
+$ErrorActionPreference = "Stop"
+$root = $PSScriptRoot
+
+Write-Host "=== PassKey Publish — $Arch $Config ===" -ForegroundColor Cyan
+
+# 1. Publish BrowserHost (self-contained, single file)
+Write-Host "`n[1/2] Publishing BrowserHost..." -ForegroundColor Yellow
+dotnet publish "$root\src\PassKey.BrowserHost\PassKey.BrowserHost.csproj" `
+ -c $Config -r "win-$Arch" --self-contained true -p:PublishSingleFile=true `
+ -o "$root\$OutDir" --verbosity quiet
+if ($LASTEXITCODE -ne 0) { throw "BrowserHost publish failed (exit $LASTEXITCODE)" }
+
+# 2. Publish Desktop (self-contained: bundles both WindowsAppSDK and .NET runtime)
+Write-Host "`n[2/2] Publishing Desktop..." -ForegroundColor Yellow
+$platformArg = if ($Arch -eq "arm64") { "ARM64" } else { "x64" }
+dotnet publish "$root\src\PassKey.Desktop\PassKey.Desktop.csproj" `
+ -c $Config -r "win-$Arch" --self-contained true -p:Platform=$platformArg `
+ -o "$root\$OutDir" --verbosity quiet
+if ($LASTEXITCODE -ne 0) { throw "Desktop publish failed (exit $LASTEXITCODE)" }
+
+Write-Host "`n=== Done ===" -ForegroundColor Green
+Write-Host "Output: $root\$OutDir"
+Get-ChildItem "$root\$OutDir\PassKey*" -ErrorAction SilentlyContinue |
+ Select-Object Name, @{N="Size (KB)"; E={[math]::Round($_.Length/1KB,1)}} |
+ Format-Table -AutoSize
diff --git a/src/PassKey.Desktop/PassKey.Desktop.csproj b/src/PassKey.Desktop/PassKey.Desktop.csproj
index 030a2b6..eab9afb 100644
--- a/src/PassKey.Desktop/PassKey.Desktop.csproj
+++ b/src/PassKey.Desktop/PassKey.Desktop.csproj
@@ -15,9 +15,9 @@
true
false
PassKey.Desktop
- 1.0.6
- 1.0.6.0
- 1.0.6.0
+ 1.0.7
+ 1.0.7.0
+ 1.0.7.0
app.manifest
Assets\PassKey.ico
DISABLE_XAML_GENERATED_MAIN