Skip to content

Conversation

@eugenesvk
Copy link
Contributor

@eugenesvk eugenesvk commented Jan 12, 2026

Closes #16994

  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

I don't know whether it's possible in scoop to run an admin post-install to actually install the .sys driver and if so what the proper way is (depend on gsudo and run gsudo installer?)
I guess the user could run the --global command and it will run in an elevated command prompt

So for know while the manifest runs the install.exe that's supposed to copy the driver Windows dir, it fails since it's non-admin, and I've instead added a note prompting users to run the installer link manually (the link is created by scoop).
I've also added the startup item to HKCU, which, I guess, should be HLKM?? for a global install, but that's also not added.

Summary by CodeRabbit

  • New Features
    • RawAccel kernel-mode mouse acceleration driver available via Scoop.
    • Version 1.7.1 release with integrated auto-update and version detection.
    • 64-bit package with automated install/uninstall and persistent settings.
    • CLI and GUI shortcuts plus startup entry management for reliable access and setup.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 12, 2026

Warning

Rate limit exceeded

@eugenesvk has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 14 minutes and 24 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between d98d98f and 42e3131.

📒 Files selected for processing (1)
  • bucket/rawaccel.json

Walkthrough

Adds a new Scoop manifest bucket/rawaccel.json for RawAccel v1.7.1: metadata, x64 download and SHA256, pre/post-install and pre-uninstall hooks (installer/uninstaller), startup registry handling, binary/shortcut mappings, persistent settings.json, and autoupdate/checkver settings.

Changes

Cohort / File(s) Summary
RawAccel Scoop Manifest
bucket/rawaccel.json
New manifest for RawAccel v1.7.1: metadata (description, homepage, license, notes); x64 download URL, SHA256, and extract_dir; pre_install creates settings.json; post_install runs installer and registers a startup Run entry; pre_uninstall runs uninstaller and removes the Run entry; binary mapping (rawaccel.exe → rawaccel); GUI/CLI shortcuts and installer/uninstaller shortcuts; persist for settings.json; checkver (releases + regex) and autoupdate (x64 URL template with version).

Sequence Diagram(s)

sequenceDiagram
  participant User as Scoop CLI/User
  participant Scoop as Scoop (installer)
  participant GitHub as GitHub Releases
  participant Windows as Windows OS (Registry / Shortcuts)
  User->>Scoop: scoop install rawaccel
  Scoop->>GitHub: request release asset (x64 archive)
  GitHub-->>Scoop: download archive.zip
  Scoop->>Scoop: extract to `extract_dir`
  Scoop->>Windows: create `settings.json` (pre_install)
  Scoop->>Windows: run installer.exe (post_install)
  Windows-->>Windows: register Run startup entry (RawAccelLoader)
  Scoop->>Windows: create binaries & shortcuts, mark `settings.json` persistent
  User->>Scoop: scoop uninstall rawaccel
  Scoop->>Windows: run uninstall.exe (pre_uninstall)
  Scoop->>Windows: remove Run startup entry and shortcuts
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • z-Fng

Poem

🐇 I dug a manifest, neat and small,
Brought mouse magic to Windows hall.
Hash tight, startup bright,
Shortcuts march into the night.
Hop—RawAccel answers the call!

🚥 Pre-merge checks | ✅ 3 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title does not follow the conventional PR format required for this repository. Use the format <manifest-name[@version]>: <general summary>, e.g., rawaccel@1.7.1: Add version 1.7.1 or rawaccel: Add version 1.7.1 with proper punctuation.
Linked Issues check ❓ Inconclusive The manifest implements basic packaging and installation hooks, but author notes unresolved concerns about admin elevation and registry hive scope (HKCU vs HKLM). Address the elevation requirement for driver installation and clarify registry scope for global installs before merging, or document the limitation clearly.
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The PR description includes the issue reference (#16994) and confirms both required checkboxes about conventional PR title and the Contributing Guide.
Out of Scope Changes check ✅ Passed The PR contains only the RawAccel v1.7.1 manifest file directly related to issue #16994.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

rawaccel

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

Check the full log for details.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Fix all issues with AI agents
In @bucket/rawaccel.json:
- Around line 38-41: The shortcut entry incorrectly places the CLI argument
inside the executable string ("writer.exe settings.json"), so split it into the
Scoop shortcut format [executable, name, parameters, ...]: keep "writer.exe" as
the first element, "Raw Accel Start (CLI)" as the second, and move
"settings.json" into the third element (parameters) so the array follows [
"writer.exe", "Raw Accel Start (CLI)", "settings.json", ... ].
- Around line 19-22: The post_install entry contains the literal string
"$dir/installer.exe" which in PowerShell only prints the path instead of
executing the installer; either remove that array element to avoid the
misleading non-functional step, or replace it with a proper invocation using the
PowerShell call operator before the path (ensuring you preserve quoting and
elevation behavior) so the installer is actually executed; update the
"post_install" array entry that contains "$dir/installer.exe" (and keep the
existing New-ItemProperty entry as-is) accordingly.
- Around line 23-26: The "pre_uninstall" entry contains the bare string
"\"$dir/uninstaller.exe\"" which does not execute; update the pre_uninstall
command in the "pre_uninstall" array to invoke the uninstaller (e.g., prefix
with the PowerShell call operator & for "$dir/uninstaller.exe") or remove this
entry if you intend users to run the uninstaller manually; target the
"pre_uninstall" array and the specific string literal "\"$dir/uninstaller.exe\""
when making the change.
- Around line 63-66: The autoupdate "hash" block referencing
"$baseurl/latest.yml" with a sha512 base64 regex is invalid for RawAccel
(releases provide RawAccel_v<version>.zip), so remove the entire "hash" object
from the autoupdate block (the key named "hash" that contains the url and regex)
so Scoop will compute the artifact hash during autoupdate instead of trying to
validate a non-existent latest.yml.
🧹 Nitpick comments (1)
bucket/rawaccel.json (1)

12-16: Inconsistent indentation.

Line 13 has 3-space indentation relative to 64bit, while lines 14-15 use 4 spaces. Align all properties consistently.

✨ Suggested fix
     "architecture": {
         "64bit": {
-           "url": "https://github.com/RawAccelOfficial/rawaccel/releases/download/v1.7.1/RawAccel_v1.7.1.zip",
-           "hash": "770fe3ae0919ca3c4d412f58c985eb27f5434decad809f7e8206de4e8852eec4",
+            "url": "https://github.com/RawAccelOfficial/rawaccel/releases/download/v1.7.1/RawAccel_v1.7.1.zip",
+            "hash": "770fe3ae0919ca3c4d412f58c985eb27f5434decad809f7e8206de4e8852eec4",
             "extract_dir": "RawAccel"
         }
     },
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5996d09 and 0f1b696.

📒 Files selected for processing (1)
  • bucket/rawaccel.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.
Learnt from: haussmann
Repo: ScoopInstaller/Extras PR: 16863
File: bucket/browseros.json:15-17
Timestamp: 2025-12-21T13:49:44.001Z
Learning: In Scoop manifests, when a URL uses a fragment like `#/dl.7z`, Scoop automatically extracts the archive after download. For nested archives (like BrowserOS), the downloaded installer may contain another archive (e.g., `chrome.7z`) that requires explicit extraction via the installer script using `Expand-7zipArchive`. The installer script should reference the inner archive name, not the outer `dl.7z`.
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/rawaccel.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: WindowsPowerShell

@eugenesvk
Copy link
Contributor Author

/verify

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

rawaccel

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In @bucket/rawaccel.json:
- Around line 20-23: The post_install script uses New-ItemProperty to create the
RawAccel autostart registry entry and also runs "installer.exe";
New-ItemProperty will fail on reinstall if the property exists and the
installer.exe call contradicts the package notes and will fail without
elevation—update the post_install array to remove or comment out the
"\"$dir/installer.exe\"" entry and add the -Force flag to the New-ItemProperty
command that sets RawAccel so the registry value (pointing to writer.exe and
settings.json) is overwritten on reinstall/update.
- Around line 24-27: The pre_uninstall steps should tolerate missing registry
keys and handle uninstaller elevation: wrap the Remove-ItemProperty call so it
does not fail if the HKCU\Software\Microsoft\Windows\CurrentVersion\Run property
RawAccel is absent (check for existence or ignore non-terminating errors) and
update the "\"$dir/uninstaller.exe\"" step to document that it must be run
elevated (or call it conditionally and surface a clear message if it fails due
to insufficient permissions); also add a note in the manifest/notes reminding
users to run the uninstaller shortcut with elevation before running scoop
uninstall.
- Around line 34-42: The shortcut entry in the "shortcuts" array contains a
broken bar character in the label "Raw Accel Start¦Configure (GUI)"; replace the
U+00A6 character with a standard separator (e.g., pipe '|' or a hyphen '-') so
the label becomes "Raw Accel Start|Configure (GUI)" or "Raw Accel Start -
Configure (GUI)"; update the string in the shortcuts array accordingly to avoid
display issues.
🧹 Nitpick comments (1)
bucket/rawaccel.json (1)

19-19: Add -Force to handle edge cases.

New-Item throws an error if the file already exists. While Scoop typically extracts to a fresh directory, adding -Force makes this more robust.

Proposed fix
-    "pre_install": "New-Item -Path \"$dir/settings.json\" -ItemType file | Out-Null",
+    "pre_install": "New-Item -Path \"$dir/settings.json\" -ItemType file -Force | Out-Null",
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 92bc586 and 158e287.

📒 Files selected for processing (1)
  • bucket/rawaccel.json
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
Learnt from: haussmann
Repo: ScoopInstaller/Extras PR: 16863
File: bucket/browseros.json:15-17
Timestamp: 2025-12-21T13:49:44.001Z
Learning: In Scoop manifests, when a URL uses a fragment like `#/dl.7z`, Scoop automatically extracts the archive after download. For nested archives (like BrowserOS), the downloaded installer may contain another archive (e.g., `chrome.7z`) that requires explicit extraction via the installer script using `Expand-7zipArchive`. The installer script should reference the inner archive name, not the outer `dl.7z`.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.
Learnt from: SorYoshino
Repo: ScoopInstaller/Extras PR: 16333
File: bucket/potplayer.json:55-64
Timestamp: 2025-10-14T11:15:55.229Z
Learning: In PotPlayer manifests (bucket/potplayer.json), PotPlayer*.ini files (PotPlayer.ini, PotPlayer64.ini, PotPlayerMini.ini, PotPlayerMini64.ini) work correctly with Scoop's hard links and don't need special handling in post_install scripts.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.
Learnt from: Lutra-Fs
Repo: ScoopInstaller/Extras PR: 16020
File: bucket/regedix.json:6-8
Timestamp: 2025-09-26T02:55:31.132Z
Learning: For Scoop manifests, prefer using "suggest" over "depends" for .NET runtime dependencies because user machines often have externally managed .NET runtimes already installed, and using "depends" could cause duplicate installations of the same runtime.
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-13T09:37:06.093Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-16T06:32:15.420Z
Learnt from: qyurila
Repo: ScoopInstaller/Extras PR: 16346
File: bucket/zed.json:18-21
Timestamp: 2025-10-16T06:32:15.420Z
Learning: The Zed Windows application has three separate executables after InnoSetup extraction:
- `zed.exe` at root: GUI application (used in shortcuts)
- `bin/zed`: Shell script for WSL integration
- `bin/zed.exe`: Zed CLI binary with different behavior than the GUI
All three should be preserved in the manifest.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-14T11:15:55.229Z
Learnt from: SorYoshino
Repo: ScoopInstaller/Extras PR: 16333
File: bucket/potplayer.json:55-64
Timestamp: 2025-10-14T11:15:55.229Z
Learning: In PotPlayer manifests (bucket/potplayer.json), the Model and Engine folders are created at runtime (not included in the installer), so they should only be in the persist list and not in post_install scripts that handle .original directories.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-16T15:59:21.258Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-27T13:19:16.982Z
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-12-21T13:49:44.001Z
Learnt from: haussmann
Repo: ScoopInstaller/Extras PR: 16863
File: bucket/browseros.json:15-17
Timestamp: 2025-12-21T13:49:44.001Z
Learning: In Scoop manifests, when a URL uses a fragment like `#/dl.7z`, Scoop automatically extracts the archive after download. For nested archives (like BrowserOS), the downloaded installer may contain another archive (e.g., `chrome.7z`) that requires explicit extraction via the installer script using `Expand-7zipArchive`. The installer script should reference the inner archive name, not the outer `dl.7z`.

Applied to files:

  • bucket/rawaccel.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: WindowsPowerShell
🔇 Additional comments (1)
bucket/rawaccel.json (1)

1-18: Autoupdate block is missing hash verification.

The manifest structure is mostly correct, but the autoupdate block (lines 58-65) lacks hash specification. It should either:

  1. Extract the hash from the release page (if available), or
  2. Specify how Scoop should obtain the hash for auto-updated versions

Without this, auto-updated versions will not be verified for integrity. The checkver regex /v([\w\.-]+)" correctly captures semantic versions, but the autoupdate mechanism is incomplete.

Reference the GitHub release page to determine if hashes are available in a machine-readable format (JSON API, asset metadata, or release notes), and add hash extraction to the autoupdate configuration accordingly.

⛔ Skipped due to learnings
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/debugtron.json:18-25
Timestamp: 2025-10-16T13:55:04.356Z
Learning: In Scoop manifests, the `checkver.github` field must be a full URI (e.g., `https://github.com/owner/repo`), not just `owner/repo`. The schema defines it with `"format": "uri"`.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.
Learnt from: haussmann
Repo: ScoopInstaller/Extras PR: 16863
File: bucket/browseros.json:15-17
Timestamp: 2025-12-21T13:49:44.001Z
Learning: In Scoop manifests, when a URL uses a fragment like `#/dl.7z`, Scoop automatically extracts the archive after download. For nested archives (like BrowserOS), the downloaded installer may contain another archive (e.g., `chrome.7z`) that requires explicit extraction via the installer script using `Expand-7zipArchive`. The installer script should reference the inner archive name, not the outer `dl.7z`.

@eugenesvk eugenesvk force-pushed the fr-rawaccel branch 2 times, most recently from bf5ac26 to d98d98f Compare January 12, 2026 20:29
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @bucket/rawaccel.json:
- Line 19: The pre_install step currently creates an empty settings.json which
causes JsonException in writer.exe; either change the pre_install action that
creates "$dir/settings.json" so it writes a minimal valid JSON object (e.g., {})
into settings.json, or remove the pre_install creation entirely to let
writer.exe (writer/Program.cs) auto-generate the default settings when the file
is missing; update the pre_install entry named "pre_install" accordingly to
implement one of these two options.
🧹 Nitpick comments (3)
bucket/rawaccel.json (3)

20-23: Installer execution may confuse users on non-elevated installs.

The installer.exe runs during post_install, but without elevation (non-global installs) it will fail to install the driver. The notes then tell users to run it manually. This creates a confusing flow where the installer runs, fails silently, and users are told to re-run it.

Consider either:

  1. Removing the installer.exe call from post_install entirely (let users run manually as documented)
  2. Adding a conditional check or informative message about the outcome

Based on learnings, global installs (scoop install -g) can prompt for elevation and would work correctly.

Option 1: Remove installer from post_install (simpler, consistent with notes)
     "post_install": [
-        "\"$dir/installer.exe\"",
         "New-ItemProperty -Force -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -Name RawAccel -PropertyType String -Value \"`\"$dir\\writer.exe`\" `\"$dir\\settings.json`\"\""
     ],

24-27: Add error handling for registry removal.

Remove-ItemProperty will throw an error if the registry entry doesn't exist (e.g., if post_install failed or user manually removed it). Consider adding -ErrorAction SilentlyContinue or -ErrorAction Ignore.

Add error handling
     "pre_uninstall": [
         "\"$dir/uninstaller.exe\"",
-        "Remove-ItemProperty -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -Name RawAccel"
+        "Remove-ItemProperty -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -Name RawAccel -ErrorAction SilentlyContinue"
     ],

34-38: Minor: Unusual character in shortcut name.

Line 37 uses "¦" (broken bar, U+00A6) as a separator. This is likely intentional since "|" is not allowed in Windows shortcut names, but it may display inconsistently across systems. Consider using a different separator like " - " or removing it entirely.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bf5ac26 and d98d98f.

📒 Files selected for processing (1)
  • bucket/rawaccel.json
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
Learnt from: haussmann
Repo: ScoopInstaller/Extras PR: 16863
File: bucket/browseros.json:15-17
Timestamp: 2025-12-21T13:49:44.001Z
Learning: In Scoop manifests, when a URL uses a fragment like `#/dl.7z`, Scoop automatically extracts the archive after download. For nested archives (like BrowserOS), the downloaded installer may contain another archive (e.g., `chrome.7z`) that requires explicit extraction via the installer script using `Expand-7zipArchive`. The installer script should reference the inner archive name, not the outer `dl.7z`.
Learnt from: eugenesvk
Repo: ScoopInstaller/Extras PR: 16995
File: bucket/rawaccel.json:20-23
Timestamp: 2026-01-12T20:30:20.562Z
Learning: In Scoop manifests, global installs (`scoop install -g`) can prompt for elevation on Windows, allowing post_install scripts to execute elevated commands like driver installers that require admin privileges.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
Learnt from: SorYoshino
Repo: ScoopInstaller/Extras PR: 16333
File: bucket/potplayer.json:55-64
Timestamp: 2025-10-14T11:15:55.229Z
Learning: In PotPlayer manifests (bucket/potplayer.json), PotPlayer*.ini files (PotPlayer.ini, PotPlayer64.ini, PotPlayerMini.ini, PotPlayerMini64.ini) work correctly with Scoop's hard links and don't need special handling in post_install scripts.
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).
Learnt from: Lutra-Fs
Repo: ScoopInstaller/Extras PR: 16020
File: bucket/regedix.json:6-8
Timestamp: 2025-09-26T02:55:31.132Z
Learning: For Scoop manifests, prefer using "suggest" over "depends" for .NET runtime dependencies because user machines often have externally managed .NET runtimes already installed, and using "depends" could cause duplicate installations of the same runtime.
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-16T15:59:21.258Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-13T09:37:06.093Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-27T13:19:16.982Z
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2026-01-12T20:30:20.562Z
Learnt from: eugenesvk
Repo: ScoopInstaller/Extras PR: 16995
File: bucket/rawaccel.json:20-23
Timestamp: 2026-01-12T20:30:20.562Z
Learning: In Scoop manifests, global installs (`scoop install -g`) can prompt for elevation on Windows, allowing post_install scripts to execute elevated commands like driver installers that require admin privileges.

Applied to files:

  • bucket/rawaccel.json
📚 Learning: 2025-10-14T11:15:55.229Z
Learnt from: SorYoshino
Repo: ScoopInstaller/Extras PR: 16333
File: bucket/potplayer.json:55-64
Timestamp: 2025-10-14T11:15:55.229Z
Learning: In PotPlayer manifests (bucket/potplayer.json), the Model and Engine folders are created at runtime (not included in the installer), so they should only be in the persist list and not in post_install scripts that handle .original directories.

Applied to files:

  • bucket/rawaccel.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: WindowsPowerShell
🔇 Additional comments (2)
bucket/rawaccel.json (2)

54-57: LGTM!

The checkver configuration uses the standard GitHub releases page pattern with an appropriate regex for version extraction.


58-65: LGTM!

Autoupdate configuration follows the standard GitHub release URL pattern with proper version substitution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Request]: RawAccel

1 participant