diff --git a/AUDIT_LOG.md b/AUDIT_LOG.md index 8a05832..854a378 100644 --- a/AUDIT_LOG.md +++ b/AUDIT_LOG.md @@ -2,6 +2,18 @@ This log tracks all significant changes, updates, and versions in the PaperCache project. +## 2026-06-29 (v0.5.7 Release: Auto-Update Overhaul, On-Demand Update Checks, and Build Fixes) +**Change:** chore(release): bump version to 0.5.7; feat(updater): overhaul auto-update flow with real-time UI feedback ("Checking…"), toast notification with "Restart Now" button, and manifest configuration; fix(api): update `onEvent` listener helper to forward payloads to callbacks fixing TS2345 strict build error + +**Details/Why:** +1. **Version Bump**: Bumped application version to 0.5.7 across `package.json`, `package-lock.json`, `Cargo.toml`, `Cargo.lock`, `tauri.conf.json`, `Settings.tsx`, and `setupTests.ts`, and added release note `notes/New Features in v0.5.7.md`. +2. **Auto-Update & On-Demand Checks**: Overhauled Tauri updater mechanism to emit status events and prompt user for controlled restart when updates are ready. Added "Check for Updates" visual feedback in Settings. +3. **Build Fix**: Fixed TS2345 error where `onEvent` discarded payload parameters, ensuring strict `tsc -b` compilation succeeds cleanly. + +**Files changed:** `package.json`, `package-lock.json`, `src-tauri/Cargo.toml`, `src-tauri/Cargo.lock`, `src-tauri/tauri.conf.json`, `src/Settings.tsx`, `src/setupTests.ts`, `notes/New Features in v0.5.7.md`, `CHANGELOG.md`, `AUDIT_LOG.md`. + +--- + ## 2026-06-29 (Security & Repo Hygiene Audit Fixes) **Change:** chore(ci): pin action references in `release.yml` to SHA digests; chore(repo): untrack build binary `PaperCache_aarch64.app.tar.gz` and update `.gitignore`; fix(rust): replace `#[allow(dead_code)]` with `#[cfg(not(target_os = "macos"))]` on debounce constants @@ -11,6 +23,8 @@ This log tracks all significant changes, updates, and versions in the PaperCache 3. **Rust Config Gating**: Gated `FOCUS_LOSS_DEBOUNCE_MS` in `src-tauri/src/lib.rs` with `#[cfg(not(target_os = "macos"))]` so it is cleanly excluded on macOS where it is not used, eliminating dead-code warnings without blanket suppressions. **Files changed:** `.github/workflows/release.yml`, `.gitignore`, `src-tauri/src/lib.rs`, `CHANGELOG.md`, `AUDIT_LOG.md`. + +--- ## 2026-06-29 (Code Quality Refactor & Test Suite) **Change:** refactor(shortcuts): extract helper to deduplicate global shortcut trigger logic; fix(timers): manage completion timeout lifecycle in store; test(editor): add comprehensive unit test suite for `VariableScope` diff --git a/CHANGELOG.md b/CHANGELOG.md index bb38198..d021a67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [v0.5.7] - 2026-06-29 + ### Added - **Contextual Auto-Update UI**: When checking for updates in Settings, visual feedback is now displayed ("Checking…"). When an update is downloaded and ready, a persistent toast notification appears with a prominent "Restart Now" button so users can restart when convenient rather than experiencing unexpected application restarts. diff --git a/notes/New Features in v0.5.7.md b/notes/New Features in v0.5.7.md new file mode 100644 index 0000000..bbd1d84 --- /dev/null +++ b/notes/New Features in v0.5.7.md @@ -0,0 +1,11 @@ +# New Features in v0.5.7 + +Welcome to PaperCache v0.5.7! + +Here are the new features and improvements implemented in this release: +- **On-Demand Update Checks**: You can now manually check for updates directly from the Settings panel. Clicking "Check for Updates" provides immediate real-time feedback ("Checking…") while inquiring with GitHub releases. +- **Contextual Auto-Update & Restart**: Auto-updates have been completely overhauled with granular status tracking. When a new update finishes downloading in the background, a persistent toast notification appears featuring a prominent **"Restart Now"** button. You can now choose exactly when to restart and apply updates rather than experiencing unexpected application disruptions. +- **Robust CI & Release Manifests**: Fixed release workflow configuration so updater manifests (`latest.json`) are reliably generated on every release asset upload. +- **Code Quality & Build Hardening**: Resolved TypeScript strict build type checking across event listeners and improved countdown timer memory cleanup. + +*(If you have read this note, feel free to delete it)* diff --git a/package-lock.json b/package-lock.json index dc70159..493ae4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "papercache", - "version": "0.5.6", + "version": "0.5.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "papercache", - "version": "0.5.6", + "version": "0.5.7", "dependencies": { "@tauri-apps/api": "^2.11.1", "@tauri-apps/plugin-autostart": "^2.5.1", diff --git a/package.json b/package.json index 10fd5ad..c49fbc8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "papercache", "private": true, - "version": "0.5.6", + "version": "0.5.7", "type": "module", "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 06468e7..699a1db 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2926,7 +2926,7 @@ dependencies = [ [[package]] name = "papercache" -version = "0.5.6" +version = "0.5.7" dependencies = [ "aes-gcm", "base64 0.22.1", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 693846e..58834ef 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "papercache" -version = "0.5.6" +version = "0.5.7" description = "A PaperCache Tauri App" authors = ["Aditya Sharma"] edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 68e9306..c4f10d6 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/2.0.0/tauri.schema.json", "productName": "PaperCache", - "version": "0.5.6", + "version": "0.5.7", "identifier": "com.variablethe.papercache", "build": { "beforeDevCommand": "npm run dev", diff --git a/src/Settings.tsx b/src/Settings.tsx index 509ec02..a50f60a 100644 --- a/src/Settings.tsx +++ b/src/Settings.tsx @@ -82,7 +82,7 @@ export default function Settings({ onClose }: { onClose?: () => void }) { return () => disposeUpdateStatus() }, []) - const [appVersion, setAppVersion] = useState('0.5.6') + const [appVersion, setAppVersion] = useState('0.5.7') useEffect(() => { getVersion() .then((ver) => setAppVersion(ver)) diff --git a/src/setupTests.ts b/src/setupTests.ts index bfbdb3f..56bb789 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -3,7 +3,7 @@ import { vi, afterEach } from 'vitest' import type { ElectronAPI } from './types' vi.mock('@tauri-apps/api/app', () => ({ - getVersion: vi.fn().mockResolvedValue('0.5.6'), + getVersion: vi.fn().mockResolvedValue('0.5.7'), })) // Mock matchMedia which is not present in jsdom but might be needed by some components