Skip to content

Commit 7fc2909

Browse files
committed
Update signing keys and version scripts
1 parent c248358 commit 7fc2909

11 files changed

Lines changed: 280 additions & 22 deletions

File tree

.github/workflows/release.yml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,30 @@ jobs:
8282
cd frontend
8383
npm run tauri build
8484
85+
# Debug: List all files in bundle directory to see if .sig files were created
86+
- name: Debug - List bundle files
87+
run: |
88+
Write-Output "=== Checking if signing key is set ==="
89+
if ($env:TAURI_SIGNING_PRIVATE_KEY) {
90+
Write-Output "TAURI_SIGNING_PRIVATE_KEY is SET (length: $($env:TAURI_SIGNING_PRIVATE_KEY.Length))"
91+
} else {
92+
Write-Output "WARNING: TAURI_SIGNING_PRIVATE_KEY is NOT SET - signatures will be empty!"
93+
}
94+
95+
Write-Output "`n=== Files in msi folder ==="
96+
Get-ChildItem -Path "frontend\src-tauri\target\release\bundle\msi" -Recurse | ForEach-Object { Write-Output $_.FullName }
97+
98+
Write-Output "`n=== Files in nsis folder (if exists) ==="
99+
if (Test-Path "frontend\src-tauri\target\release\bundle\nsis") {
100+
Get-ChildItem -Path "frontend\src-tauri\target\release\bundle\nsis" -Recurse | ForEach-Object { Write-Output $_.FullName }
101+
}
102+
103+
Write-Output "`n=== Looking for .sig files ==="
104+
Get-ChildItem -Path "frontend\src-tauri\target\release\bundle" -Recurse -Filter "*.sig" | ForEach-Object {
105+
Write-Output "Found signature: $($_.FullName)"
106+
Write-Output "Content: $(Get-Content $_.FullName -Raw)"
107+
}
108+
85109
# Generate checksums for verification
86110
- name: Generate checksums
87111
run: |
@@ -189,10 +213,23 @@ jobs:
189213
run: |
190214
$version = "${{ steps.get_version.outputs.version }}"
191215
$tag = "${{ github.ref_name }}"
192-
$msiSignature = "${{ steps.find_files.outputs.msi_signature }}"
193216
$repo = "${{ github.repository }}"
194217
$pubDate = Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ"
195218
219+
# Try to read signature directly from file (more reliable than output variable)
220+
$sigPath = "frontend\src-tauri\target\release\bundle\msi\*.sig"
221+
$sigFiles = Get-ChildItem -Path $sigPath -ErrorAction SilentlyContinue
222+
223+
$msiSignature = ""
224+
if ($sigFiles) {
225+
$msiSignature = (Get-Content $sigFiles[0].FullName -Raw).Trim()
226+
Write-Output "Found signature in file: $($sigFiles[0].FullName)"
227+
Write-Output "Signature (first 50 chars): $($msiSignature.Substring(0, [Math]::Min(50, $msiSignature.Length)))..."
228+
} else {
229+
Write-Output "WARNING: No .sig file found! Auto-update will NOT work."
230+
Write-Output "Make sure TAURI_SIGNING_PRIVATE_KEY secret is set in GitHub repository settings."
231+
}
232+
196233
# Get release notes (unescape the GitHub Actions encoding)
197234
$releaseNotes = "${{ steps.release_notes.outputs.notes }}"
198235
$releaseNotes = $releaseNotes -replace '%0A', "`n"

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to Local Lens will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.2] - 2025-12-03
9+
10+
### Fixed
11+
12+
- Fixed code signing configuration for auto-updates (regenerated keys)
13+
814
## [2.0.1] - 2025-12-03
915

1016
### Fixed

frontend/.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,8 @@ dist-ssr
2929
.env.production.local
3030

3131
# Test coverage reports
32-
coverage
32+
coverage
33+
34+
# Tauri secret files
35+
tauri-*.key
36+
tauri-*.key.pub

frontend/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "local-lens",
33
"private": true,
4-
"version": "2.0.1",
4+
"version": "2.0.2",
55
"type": "module",
66
"scripts": {
77
"dev:pre": "node -e \"const fs = require('fs'); const path = 'src-tauri/backend_server-x86_64-pc-windows-msvc.exe'; if (!fs.existsSync(path)) { fs.writeFileSync(path, ''); }\"",
@@ -29,4 +29,4 @@
2929
"@vitejs/plugin-react": "^4.3.4",
3030
"vite": "^6.0.3"
3131
}
32-
}
32+
}

frontend/src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "LocalLens"
3-
version = "2.0.1"
3+
version = "2.0.2"
44
description = "Application to organize photos using AI with face recognition and object detection."
55
authors = ["you"]
66
edition = "2021"

frontend/src-tauri/tauri.conf.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "Local Lens",
4-
"version": "2.0.1",
4+
"version": "2.0.2",
55
"identifier": "ashes.locallens",
66
"build": {
77
"beforeDevCommand": "npm run dev:pre && npm run dev",
@@ -40,7 +40,7 @@
4040
"endpoints": [
4141
"https://github.com/ashesbloom/LocalLens/releases/latest/download/latest.json"
4242
],
43-
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDExQUNGMkVEQTBCMUNGN0EKUldSNno3R2c3ZktzRWE3V2JYcHVpTkZaS3poR3RDeHA3bGRGTWlmQWNhY1JFUUZxTVdhL0x0QngK"
43+
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEE1QjI3RkRGOUUwRjI4NTgKUldSWUtBK2UzMyt5cFlEZERPNEhIaVlQd21wa2VZSlZ4R1VXbnBxNzVTRG9xZ25IdFVMaXJWRS8K"
4444
}
4545
}
46-
}
46+
}

frontend/src/App.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import FindGroupResultModal from './components/FindGroupResultModal';
2222
import MoveCompleteModal from './components/MoveCompleteModal'; // <-- ADD THIS
2323
import ConfirmationModal from './components/ConfirmationModal';
2424
import UpdateChecker from './components/UpdateChecker'; // <-- ADD: Auto-update notification
25+
import { version } from '../package.json';
2526

2627
import './App.css';
2728

@@ -1039,7 +1040,7 @@ function App() {
10391040
/>
10401041

10411042
{/* Update Checker - Top Left Notification */}
1042-
<UpdateChecker currentVersion="2.0.1" />
1043+
<UpdateChecker currentVersion={version} />
10431044

10441045
{/* Exit Button */}
10451046
<button onClick={handleExit} className="btn-exit" aria-label="Kill Backend" title="Kill Backend">

frontend/src/components/UpdateChecker.css

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,21 @@
347347
border-radius: 0.5rem;
348348
color: #fecaca;
349349
font-size: 0.8rem;
350+
display: flex;
351+
flex-direction: column;
352+
gap: 0.5rem;
353+
}
354+
355+
.update-manual-link {
356+
color: var(--color-primary);
357+
text-decoration: none;
358+
font-weight: 500;
359+
transition: color 0.2s ease;
360+
}
361+
362+
.update-manual-link:hover {
363+
color: var(--color-primary-hover, #60a5fa);
364+
text-decoration: underline;
350365
}
351366

352367
/* ========================================
@@ -474,3 +489,32 @@
474489
color: rgba(255, 255, 255, 0.5);
475490
margin: 0;
476491
}
492+
493+
/* Check for Updates Button */
494+
.btn-check-updates {
495+
margin-top: 1rem;
496+
padding: 0.5rem 1rem;
497+
border: 1px solid rgba(255, 255, 255, 0.2);
498+
background: rgba(255, 255, 255, 0.05);
499+
color: rgba(255, 255, 255, 0.8);
500+
border-radius: 0.5rem;
501+
font-weight: 500;
502+
font-size: 0.8rem;
503+
cursor: pointer;
504+
transition: all 0.2s ease;
505+
display: flex;
506+
align-items: center;
507+
justify-content: center;
508+
gap: 0.5rem;
509+
}
510+
511+
.btn-check-updates:hover:not(:disabled) {
512+
background: rgba(var(--color-primary-rgb), 0.2);
513+
border-color: rgba(var(--color-primary-rgb), 0.4);
514+
color: white;
515+
}
516+
517+
.btn-check-updates:disabled {
518+
opacity: 0.7;
519+
cursor: not-allowed;
520+
}

0 commit comments

Comments
 (0)