diff --git a/.gitignore b/.gitignore index c1900e7..dfdcf42 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ python/tests/samples/ # Claude Code — file operativi locali CLAUDE.md +AGENTS.md # Log files *.log diff --git a/CHANGELOG.md b/CHANGELOG.md index bbd2f50..2aaee7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,28 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) — --- +## [0.2.5-beta.1] — 2026-07-25 + +### Security +- Updated transitive Electron tooling dependency `fast-uri` from 3.1.2 to 3.1.4 to include + upstream security fixes. + +### Dependencies +- electron: 43.1.1 → 43.2.0 (Chromium/Electron fixes) +- react: 19.2.7 → 19.2.8 +- react-dom: 19.2.7 → 19.2.8 +- lucide-react: 1.24.0 → 1.26.0 +- @vitejs/plugin-react: 6.0.3 → 6.0.4 +- @fontsource/inter: 5.2.8 → 5.3.0 +- @fontsource/jetbrains-mono: 5.2.8 → 5.3.0 + +### Quality +- All Python tests passing: 47 passed, 1 skipped +- Frontend production build verified +- Electron 43.2.0 installation verified + +--- + ## [0.2.4] — 2026-07-21 ### Fixed diff --git a/README.md b/README.md index 8c3773b..27cb217 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ File (image / audio / video / document / anything) ## 🔧 Version -**v0.2.4** — Fixed a Windows-only bug where the app window and splash would flash, close, and reopen on install/update, caused by Squirrel relaunching the app after its own shortcut setup. No changes to application behavior or the API. +**v0.2.5** — Maintenance and security update for Electron/frontend dependencies, including the upstream `fast-uri` security fixes. No changes to application behavior or the API. 📖 **See full version history** → [CHANGELOG.md](./CHANGELOG.md) @@ -234,5 +234,5 @@ Distributed with MIT License · [View License](LICENSE) --- -*Last updated: 2026-07-21* +*Last updated: 2026-07-25* *← [Requirements](docs/REQUIREMENTS.md) | [Docs →](docs/)* diff --git a/electron/package-lock.json b/electron/package-lock.json index 5deb0f9..e0ebf0a 100644 --- a/electron/package-lock.json +++ b/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "metalens", - "version": "0.2.4", + "version": "0.2.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "metalens", - "version": "0.2.4", + "version": "0.2.5", "license": "MIT", "devDependencies": { "@electron-forge/cli": "^7.6.0", @@ -14,7 +14,7 @@ "@electron-forge/maker-rpm": "^7.6.0", "@electron-forge/maker-squirrel": "^7.6.0", "@electron-forge/maker-zip": "^7.11.2", - "electron": "^43.1.1" + "electron": "^43.2.0" } }, "node_modules/@electron-forge/cli": { @@ -2399,9 +2399,9 @@ "license": "MIT" }, "node_modules/electron": { - "version": "43.1.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-43.1.1.tgz", - "integrity": "sha512-I5c5vfuVvaXpWx3IZdwvXgxQW44+e7OP1wXGVQkogLeSFSkUZ6sLCcWV05AdEcs65AO5tAIJJwbp7ixw+LdarA==", + "version": "43.2.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-43.2.0.tgz", + "integrity": "sha512-80zvrgG7ZRXD+tD0IyLvrnN9n+veSxadMRsMaC9wKKP3iUbtC7rGM8+dVuCmOb0Rrwwv8ESW4awnUZh9Hbp1fA==", "dev": true, "license": "MIT", "dependencies": { @@ -3337,9 +3337,9 @@ } }, "node_modules/fast-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", - "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", + "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", "dev": true, "funding": [ { diff --git a/electron/package.json b/electron/package.json index 15e98ee..cbf71e0 100644 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "metalens", - "version": "0.2.4", + "version": "0.2.5", "description": "Universal File Metadata Manager", "author": "Graziano Mariella", "license": "MIT", @@ -15,6 +15,6 @@ "@electron-forge/maker-rpm": "^7.6.0", "@electron-forge/maker-squirrel": "^7.6.0", "@electron-forge/maker-zip": "^7.11.2", - "electron": "^43.1.1" + "electron": "^43.2.0" } } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index f1c02c0..f6596b5 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,22 +1,22 @@ { "name": "metalens-frontend", - "version": "0.2.4", + "version": "0.2.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "metalens-frontend", - "version": "0.2.4", + "version": "0.2.5", "dependencies": { - "@fontsource/inter": "^5.2.8", - "@fontsource/jetbrains-mono": "^5.2.8", - "lucide-react": "^1.24.0", - "react": "^19.1.0", - "react-dom": "^19.2.7" + "@fontsource/inter": "^5.3.0", + "@fontsource/jetbrains-mono": "^5.3.0", + "lucide-react": "^1.26.0", + "react": "^19.2.8", + "react-dom": "^19.2.8" }, "devDependencies": { "@tailwindcss/vite": "^4.3.3", - "@vitejs/plugin-react": "^6.0.3", + "@vitejs/plugin-react": "^6.0.4", "tailwindcss": "^4.3.3", "vite": "^8.1.5" } @@ -56,18 +56,18 @@ } }, "node_modules/@fontsource/inter": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.2.8.tgz", - "integrity": "sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.3.0.tgz", + "integrity": "sha512-RofMylZmjlJEfELXeNHFWBRcSs75rGU/6bV2S2jfnvv/3rPXPGe0LgUJTklcHZ9lM4OZmAVFhcJPnACfb91A3g==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, "node_modules/@fontsource/jetbrains-mono": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.2.8.tgz", - "integrity": "sha512-6w8/SG4kqvIMu7xd7wt6x3idn1Qux3p9N62s6G3rfldOUYHpWcc2FKrqf+Vo44jRvqWj2oAtTHrZXEP23oSKwQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.3.0.tgz", + "integrity": "sha512-fqDfB5I9f1p1TV486aUgB9t8zP84P0O1FtQR5Ol9vjwPy+S+EIGlVYm1cvj2W5shcZMTg2nZFdVMoH5wFu8a1A==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" @@ -796,9 +796,9 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.3.tgz", - "integrity": "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.4.tgz", + "integrity": "sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==", "dev": true, "license": "MIT", "dependencies": { @@ -1169,9 +1169,9 @@ } }, "node_modules/lucide-react": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.24.0.tgz", - "integrity": "sha512-YT6mBD8lGKkg4nM39enlm94/sfJIiW0YKUT60fBy4YK8tai31ylg1VhGNWxkpSKHo9UagfnZqwIff3HTDQwXeA==", + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.26.0.tgz", + "integrity": "sha512-raglYVR2+VkMfJL158krjVmE+rV5ST2lzA/KQm1FRSjMHT4MnWaegHxoVEpmc2So3nOEhp9oGejJwAPX8MoAjg==", "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" @@ -1256,24 +1256,24 @@ } }, "node_modules/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", - "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", - "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.7" + "react": "^19.2.8" } }, "node_modules/rolldown": { diff --git a/frontend/package.json b/frontend/package.json index ad2deae..08c4680 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "metalens-frontend", - "version": "0.2.4", + "version": "0.2.5", "private": true, "type": "module", "scripts": { @@ -9,15 +9,15 @@ "preview": "vite preview" }, "dependencies": { - "@fontsource/inter": "^5.2.8", - "@fontsource/jetbrains-mono": "^5.2.8", - "lucide-react": "^1.24.0", - "react": "^19.1.0", - "react-dom": "^19.2.7" + "@fontsource/inter": "^5.3.0", + "@fontsource/jetbrains-mono": "^5.3.0", + "lucide-react": "^1.26.0", + "react": "^19.2.8", + "react-dom": "^19.2.8" }, "devDependencies": { "@tailwindcss/vite": "^4.3.3", - "@vitejs/plugin-react": "^6.0.3", + "@vitejs/plugin-react": "^6.0.4", "tailwindcss": "^4.3.3", "vite": "^8.1.5" } diff --git a/python/config.py b/python/config.py index 6254cfc..405eae4 100644 --- a/python/config.py +++ b/python/config.py @@ -1,7 +1,7 @@ from dataclasses import dataclass -VERSION = "0.2.4" +VERSION = "0.2.5" APP_NAME = "MetaLens" SIDECAR_HOST = "127.0.0.1"