Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ uuid = { version = "1", features = ["v4"] }
# for the class object that serves it). winreg registers both that activator's
# CLSID and the openframe-console:// scheme the toast body still activates.
[target.'cfg(target_os = "windows")'.dependencies]
windows = { version = "0.61", features = [
windows = { version = "=0.61.0", features = [
"Data_Xml_Dom",
"UI_Notifications",
"Win32_Foundation",
Expand All @@ -64,7 +64,10 @@ windows = { version = "0.61", features = [
# Bump it in lockstep with `windows`: if the two resolve to different major
# versions the macro's `::windows_core::IUnknownImpl` stops satisfying the
# `_Impl` supertrait, and the error points nowhere near this file.
windows-core = "0.61"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🦩 🔴 windows-core version pinned as loose "0.61" without lockstep guard against windows crate bump

In src-tauri/Cargo.toml, under [target.'cfg(target_os = "windows")'.dependencies], changed windows = { version = "0.61", ... } to windows = { version = "=0.61.0", ... } and windows-core = "0.61" to windows-core = "=0.61.0", plus extended the existing comment to explain the pinning rationale. Exact-version pins mean cargo update/a future edit cannot silently drift either crate to a new minor/patch independently, forcing an explicit, simultaneous edit of both lines to bump — turning the previously-undocumented-in-tooling lockstep requirement into a build-time-enforced one. Residual risk: this does not prevent a human from editing only one line and still merging that change, since Cargo itself won't detect a "0.62" typed into just one field as wrong; it only prevents transitive resolver drift. A more complete guard (e.g. a workspace-level xtask/CI check comparing the two strings) would require new tooling outside this file's scope.

🤖 Prompt for AI agents
In src-tauri/Cargo.toml around line 67, review and complete this code-review fix: windows-core version pinned as loose "0.61" without lockstep guard against windows crate bump.
What the draft fix changed: In `src-tauri/Cargo.toml`, under `[target.'cfg(target_os = "windows")'.dependencies]`, changed `windows = { version = "0.61", ... }` to `windows = { version = "=0.61.0", ... }` and `windows-core = "0.61"` to `windows-core = "=0.61.0"`, plus extended the existing comment to explain the pinning rationale. Exact-version pins mean `cargo update`/a future edit cannot silently drift either crate to a new minor/patch independently, forcing an explicit, simultaneous edit of both lines to bump — turning the previously-undocumented-in-tooling lockstep requirement into a build-time-enforced one. Residual risk: this does not prevent a human from editing only one line and still merging that change, since Cargo itself won't detect a "0.62" typed into just one field as wrong; it only prevents *transitive* resolver drift. A more complete guard (e.g. a workspace-level xtask/CI check comparing the two strings) would require new tooling outside this file's scope.
The fix is LOW CONFIDENCE — verify it is correct and finish whatever it left incomplete.

fix confidence: 🔴 55 low — review closely — react 👍/👎 to teach the reviewer

# Both are pinned to exact versions (=) rather than caret ranges so that
# bumping one without the other fails the build immediately at `cargo update`
# / `cargo build` instead of silently resolving to mismatched majors.
windows-core = "=0.61.0"
winreg = "0.52"

# UNUserNotificationCenter backend (clicks survive the process, unlike the
Expand Down Expand Up @@ -94,3 +97,4 @@ objc2-user-notifications = { version = "0.3.2", features = [
"UNNotificationTrigger",
"UNUserNotificationCenter",
] }

Loading