Three reports, one shape: the app told the user something had happened when it had not. **Appearance was stored in the wrong place.** theme and tray_icon_style lived in the daemon's settings, which need root to write. So toggling to a monochrome tray produced a rejected write, no visible change, and a switch still sitting where it had been put — the screen disagreeing with reality. Appearance is a per-user preference: it belongs to the person, not the machine, and putting it in the daemon would also have made one user's choice everyone's on a shared box. It is client-side now, applies the instant the control moves, and never prompts for a password. **There was a Save button.** A settings screen with one lets you walk away with your changes discarded, and here it also hid the failure above. It is gone. Every control writes on change, batched behind a short delay so toggling three switches is one request and one authentication prompt rather than three, and typed fields wait for a pause rather than firing per keystroke. A write the daemon refuses now reloads the real settings, so a control never keeps a value that was not accepted. **The app did not notice being replaced.** After an update the running process is still the old binary showing the old front-end, which is indistinguishable from an update that did nothing — the Appearance panel was in the installed package the whole time and could not be found without quitting and relaunching. The daemon restarts on upgrade, so its reported version is the authority on what is installed; when it stops matching this process's own, the app says so and reopens. One attempt only, so a version that never matches cannot become a restart loop. Also: the tray repaints immediately on an appearance change rather than waiting for the next poll, and the stored appearance is applied before first paint so the window does not flash the wrong theme on the way in. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
265 lines
8.4 KiB
JSON
265 lines
8.4 KiB
JSON
{
|
|
"name": "hound-gui",
|
|
"version": "0.1.4",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"name": "hound-gui",
|
|
"version": "0.1.4",
|
|
"dependencies": {
|
|
"@tauri-apps/api": "^2.5.0",
|
|
"@tauri-apps/plugin-dialog": "^2.7.2",
|
|
"@tauri-apps/plugin-notification": "^2.3.3"
|
|
},
|
|
"devDependencies": {
|
|
"@tauri-apps/cli": "^2.5.0"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/api": {
|
|
"version": "2.11.1",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.11.1.tgz",
|
|
"integrity": "sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==",
|
|
"license": "Apache-2.0 OR MIT",
|
|
"funding": {
|
|
"type": "opencollective",
|
|
"url": "https://opencollective.com/tauri"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-2.11.4.tgz",
|
|
"integrity": "sha512-R8xGtMpwyetawSqm9kYOuMmEqkhUbvcUy8n0aNXIxollKBLESUu5f4Fx+64hgASYm1H+jSWq6jCW6zqTnH6hqQ==",
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"bin": {
|
|
"tauri": "tauri.js"
|
|
},
|
|
"engines": {
|
|
"node": ">= 10"
|
|
},
|
|
"funding": {
|
|
"type": "opencollective",
|
|
"url": "https://opencollective.com/tauri"
|
|
},
|
|
"optionalDependencies": {
|
|
"@tauri-apps/cli-darwin-arm64": "2.11.4",
|
|
"@tauri-apps/cli-darwin-x64": "2.11.4",
|
|
"@tauri-apps/cli-linux-arm-gnueabihf": "2.11.4",
|
|
"@tauri-apps/cli-linux-arm64-gnu": "2.11.4",
|
|
"@tauri-apps/cli-linux-arm64-musl": "2.11.4",
|
|
"@tauri-apps/cli-linux-riscv64-gnu": "2.11.4",
|
|
"@tauri-apps/cli-linux-x64-gnu": "2.11.4",
|
|
"@tauri-apps/cli-linux-x64-musl": "2.11.4",
|
|
"@tauri-apps/cli-win32-arm64-msvc": "2.11.4",
|
|
"@tauri-apps/cli-win32-ia32-msvc": "2.11.4",
|
|
"@tauri-apps/cli-win32-x64-msvc": "2.11.4"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-darwin-arm64": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-2.11.4.tgz",
|
|
"integrity": "sha512-1ryOF3ZhpZ/nemHV5zVwBQBz9jDGKmKPvWPADOhc83ig0P4bMc2iER4NbC6r9sjeIZ6RVQ4g3RZIYvezhcl4TQ==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-darwin-x64": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-2.11.4.tgz",
|
|
"integrity": "sha512-uFsGQAAfuyz1k/yGLmkWfkBlgKAqZfxqlHmLWx81QU27RJWfmbNHCIq8T8w1e+VClleIuZUjpHWfoE4E3DLo3A==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-2.11.4.tgz",
|
|
"integrity": "sha512-IaHZn5CdBL21oUmjiVOS1ctw6Ip1O0pjp70FwOWmYz1myWe0SY96ZIj2FYf7pT0m8bI2h/hrs5ZbEXXh44/MkQ==",
|
|
"cpu": [
|
|
"arm"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-linux-arm64-gnu": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-2.11.4.tgz",
|
|
"integrity": "sha512-N41/ukTRVe6XSuUTESuFdGeOW2i7k62tK+6gHK5Kd5/q5RPvvi19GaWAVPPb9u95HSGmTChSolBfzynUsssFaA==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-linux-arm64-musl": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.11.4.tgz",
|
|
"integrity": "sha512-v277UnT/fB64xAfSroL5N3Km3tLmvATWqJJw/wRI+g6o+HkeD0slyE7gOhNs1MbjE41R7bQOTxMVoL3aomUJmw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-linux-riscv64-gnu": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-riscv64-gnu/-/cli-linux-riscv64-gnu-2.11.4.tgz",
|
|
"integrity": "sha512-qqgNkQ2u1yZHxjhxsZaxUtRDW8dIqIYm33rx/mzwQv0SfY9x1B+iraj8vWeFiXjjSVVhEMepXSOts1TqPzvXNQ==",
|
|
"cpu": [
|
|
"riscv64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-linux-x64-gnu": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-2.11.4.tgz",
|
|
"integrity": "sha512-2VRNWl84FOH0m2giiDkO2h0QXlcMJeX+zJDpI5kDIQAx6s+geF3v48F4DXfJez4GS/FdoDGnPnw1C2iYGbQ7bQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-linux-x64-musl": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-2.11.4.tgz",
|
|
"integrity": "sha512-o9GyhYor/nc7xarmwDE3ka2szuW3uuZzXjHWh64Q8YX5AtSgxdQkFWzrY4O8KiGtVNvFBI14H3Q49Qj5TOIP/A==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-win32-arm64-msvc": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-2.11.4.tgz",
|
|
"integrity": "sha512-ld5Ehb598m0VkYyylRPNeCFsBe/km0jxis6KgMpl3IGY6I/i1RwQXO05I1AsXUXO2WC6AvB/Lw4qTf/asiuEiQ==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-win32-ia32-msvc": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-2.11.4.tgz",
|
|
"integrity": "sha512-12Hxi0XX/H5VFxO/bGgHkFWhml9VMgEOu9CidjeCeTNQ1l6fpUlbiGgSP7CLI3PFtW9/FfbeHieZ+kyWK5H7CA==",
|
|
"cpu": [
|
|
"ia32"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/cli-win32-x64-msvc": {
|
|
"version": "2.11.4",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.11.4.tgz",
|
|
"integrity": "sha512-+vDiqBIU5dMISg/wNvX3sF+ZHfgJGJ5T0AcO+EHNXV9GGAG+P5fzodlDXD3QdKCRgZxMoCm5PPvj3BqLNjBthw==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 OR MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">= 10"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/plugin-dialog": {
|
|
"version": "2.7.2",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.7.2.tgz",
|
|
"integrity": "sha512-pX0IGm1I3I6wc+zeKYcq1GSqogK6okCNX5fOdaNU5ab1AjGS6l1E5wFNjEb7meg7ZFSp0JUs+0jQGQNyOvLrsg==",
|
|
"license": "MIT OR Apache-2.0",
|
|
"dependencies": {
|
|
"@tauri-apps/api": "^2.11.0"
|
|
}
|
|
},
|
|
"node_modules/@tauri-apps/plugin-notification": {
|
|
"version": "2.3.3",
|
|
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.3.3.tgz",
|
|
"integrity": "sha512-Zw+ZH18RJb41G4NrfHgIuofJiymusqN+q8fGUIIV7vyCH+5sSn5coqRv/MWB9qETsUs97vmU045q7OyseCV3Qg==",
|
|
"license": "MIT OR Apache-2.0",
|
|
"dependencies": {
|
|
"@tauri-apps/api": "^2.8.0"
|
|
}
|
|
}
|
|
}
|
|
}
|