fix: bug batch may23 — Readymade dock, toggle-devmode tag, OTD blacklist, brew path#346
fix: bug batch may23 — Readymade dock, toggle-devmode tag, OTD blacklist, brew path#346castrojo wants to merge 2 commits into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (4)
📝 WalkthroughWalkthroughThis PR updates system configuration and maintenance scripts across Bluefin: advances the branding subproject, removes an application from GNOME Shell favorites, refactors image detection in toggle-devmode from file-based to rpm-ostree-based queries, enhances OpenTabletDriver installation with udev cleanup and immediate kernel module handling, and corrects the brew binary path for system cleanup operations. ChangesSystem maintenance and configuration refinements
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
system_files/shared/usr/share/ublue-os/just/apps.just (1)
56-56:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winPre-existing bug: Uninstall removes wrong filename.
Line 39 creates
/etc/modprobe.d/blacklist-opentabletdriver.conf, but line 56 attempts to remove/etc/modprobe.d/blacklist-opentabletdriver.rules. The blacklist file will not be cleaned up during uninstall.🐛 Proposed fix
- sudo rm -f /etc/modprobe.d/blacklist-opentabletdriver.rules /etc/udev/rules.d/71-opentabletdriver.rules + sudo rm -f /etc/modprobe.d/blacklist-opentabletdriver.conf /etc/udev/rules.d/71-opentabletdriver.rules🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@system_files/shared/usr/share/ublue-os/just/apps.just` at line 56, The uninstall removes the wrong blacklist filename: creation uses "blacklist-opentabletdriver.conf" but the removal command targets "blacklist-opentabletdriver.rules"; update the sudo rm invocation that currently references "blacklist-opentabletdriver.rules" to remove "blacklist-opentabletdriver.conf" instead (leave the udev rule "71-opentabletdriver.rules" removal as-is) so the created blacklist file is actually cleaned up during uninstall.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@system_files/bluefin/usr/share/ublue-os/just/system.just`:
- Around line 23-25: Enable strict pipe failure and make jq error on
missing/null image: in the toggle-devmode block add set -o pipefail alongside
set -e, change the jq invocation that populates CURRENT_IMAGE to use jq -er so
it returns non-zero on missing/null
(.deployments[0]."container-image-reference"), and after command assignation
validate that CURRENT_IMAGE is non-empty (exit with error/log) before proceeding
to any bootc/boot switch calls; reference CURRENT_IMAGE, rpm-ostree, jq and the
existing set -e/set +e toggles when locating the code to modify.
In `@system_files/shared/usr/share/ublue-os/just/update.just`:
- Line 17: The rollback helper script ublue-rollback-helper currently uses a
strict grep like "^LockLayering=true" which misses variants with leading spaces
or spaces around '='; change its grep invocation to the same
whitespace-and-comment-tolerant regex used in update.just but matching true
(e.g. use grep -q -E -e
"^[[:space:]]*LockLayering[[:space:]]*=[[:space:]]*true([[:space:]]*(#.*)?)?$")
so that lines like "LockLayering = true" or " LockLayering=true" are detected
and the script correctly chooses the bootc switch flow; update the grep call in
ublue-rollback-helper accordingly.
---
Outside diff comments:
In `@system_files/shared/usr/share/ublue-os/just/apps.just`:
- Line 56: The uninstall removes the wrong blacklist filename: creation uses
"blacklist-opentabletdriver.conf" but the removal command targets
"blacklist-opentabletdriver.rules"; update the sudo rm invocation that currently
references "blacklist-opentabletdriver.rules" to remove
"blacklist-opentabletdriver.conf" instead (leave the udev rule
"71-opentabletdriver.rules" removal as-is) so the created blacklist file is
actually cleaned up during uninstall.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 48c1ed5d-775c-4fa5-a094-2e5ec9ad938a
📒 Files selected for processing (7)
bluefin-brandingsystem_files/bluefin/usr/share/glib-2.0/schemas/zz0-bluefin-modifications.gschema.overridesystem_files/bluefin/usr/share/ublue-os/just/00-entry.justsystem_files/bluefin/usr/share/ublue-os/just/system.justsystem_files/shared/usr/share/ublue-os/just/apps.justsystem_files/shared/usr/share/ublue-os/just/default.justsystem_files/shared/usr/share/ublue-os/just/update.just
| # Use the booted deployment reference so stable-daily images get the correct tag | ||
| # Strip transport prefix (ostree-image-signed:docker://, ostree-unverified-registry:, etc.) | ||
| CURRENT_IMAGE="$(rpm-ostree status -b --json | jq -rc '.deployments[0]."container-image-reference"' | sed -E 's|^.*://||; s|^[a-z-]+:||')" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify robust pipeline/error handling exists in toggle-devmode
file="system_files/bluefin/usr/share/ublue-os/just/system.just"
rg -n -C2 'toggle-devmode:|set -e|set -o pipefail|CURRENT_IMAGE=.*rpm-ostree status -b --json|jq -[a-z]*e' "$file"Repository: projectbluefin/common
Length of output: 705
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="system_files/bluefin/usr/share/ublue-os/just/system.just"
# Show the toggle-devmode block around the CURRENT_IMAGE line.
nl -ba "$file" | sed -n '10,80p'
# Find all usages of CURRENT_IMAGE in the file to see whether "null"/empty is handled.
rg -n "CURRENT_IMAGE" "$file"Repository: projectbluefin/common
Length of output: 108
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="system_files/bluefin/usr/share/ublue-os/just/system.just"
# Show the toggle-devmode block around the CURRENT_IMAGE line.
cat -n "$file" | sed -n '10,90p'
# Find all usages of CURRENT_IMAGE in the file.
rg -n "CURRENT_IMAGE" "$file"Repository: projectbluefin/common
Length of output: 4299
Harden toggle-devmode image parsing: enable pipefail and make jq fail on missing/null container-image-reference.
toggle-devmodeusesset -ebut noset -o pipefail, so failures inrpm-ostree/jqwon’t reliably stop the pipeline;set +eis then enabled immediately after, allowing a badCURRENT_IMAGEto flow intobootc switch.jq -rcwon’t fail when.deployments[0]."container-image-reference"is null/missing, which can yieldnull/empty and produce an incorrectNEW_IMAGE.
Suggested fix
toggle-devmode:
#!/usr/bin/env bash
set -e
+ set -o pipefail
@@
- CURRENT_IMAGE="$(rpm-ostree status -b --json | jq -rc '.deployments[0]."container-image-reference"' | sed -E 's|^.*://||; s|^[a-z-]+:||')"
+ CURRENT_IMAGE="$(rpm-ostree status -b --json | jq -er '.deployments[0]."container-image-reference"' | sed -E 's|^.*://||; s|^[a-z-]+:||')"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@system_files/bluefin/usr/share/ublue-os/just/system.just` around lines 23 -
25, Enable strict pipe failure and make jq error on missing/null image: in the
toggle-devmode block add set -o pipefail alongside set -e, change the jq
invocation that populates CURRENT_IMAGE to use jq -er so it returns non-zero on
missing/null (.deployments[0]."container-image-reference"), and after command
assignation validate that CURRENT_IMAGE is non-empty (exit with error/log)
before proceeding to any bootc/boot switch calls; reference CURRENT_IMAGE,
rpm-ostree, jq and the existing set -e/set +e toggles when locating the code to
modify.
hanthor
left a comment
There was a problem hiding this comment.
The PR description explicitly states it includes changes from #324 and #300 which are not yet merged. Please rebase once those land to drop the included changes from unmerged PRs and keep only the four fixes this PR is supposed to deliver. Merging now would create a history tangle and could conflict with the in-flight reviews on #324 and #300.
🤖 Copilot Test ReportBranch: Test Results
SummaryBug batch from May 23 — multiple fixes in one PR. Touches just, gnome, brew, and policy areas. |
…ggle-devmode tag, OTD blacklist, brew path - Remove search-light from enabled-extensions (crashes GDM, causes reboots) Closes projectbluefin#324 (pfanzola) - Fix LockLayering grep to ignore commented entries in rpm-ostreed.conf Closes projectbluefin#301, picks up PR projectbluefin#300 (joshyorko) - Remove Readymade installer from dock favorites (users re-click causing confusion) Closes projectbluefin#213 - Fix toggle-devmode reading image-tag from image-info.json; now reads from rpm-ostree status -b --json so stable-daily stays on stable-daily Closes projectbluefin#149 - Fix install-opentabletdriver: cleanup old rule files, add modprobe uinput and rmmod wacom/hid_uclogic so drivers unload immediately without reboot Closes projectbluefin#340 - Fix clean-system brew path: /home/linuxbrew -> /var/home/linuxbrew, use explicit path to match update.just Assisted-by: claude-sonnet-4-5 via pi
0566254 to
fbec3b3
Compare
|
🔔 Needs 2 approvals from maintainers to enter the merge queue (can't self-approve). Both conflict issues have been resolved via rebase — branch is clean and |
|
Reviewed the four fixes — all look correct:
Two things to check before merging:
|
Four bug fixes, all lab-verified on
titan-bluefin(KubeVirt VM, ghost testlab, 2026-05-24).Fixes
fix: remove Readymade installer from dock favorites
Closes #213
com.fyralabs.Readymade.desktopremoved fromfavorite-apps. Users were repeatedly clicking the installer icon due to a delay before it autolaunches. The installer still autolaunches on first boot — it just no longer sits in the dock permanently.fix: toggle-devmode reads correct image tag from booted deployment
Closes #149
Replaces
jq '."image-tag"' image-info.jsonwithrpm-ostree status -b --jsonto read the actual booted container image reference.image-info.jsonstoresimage-tag: "stable"even forstable-dailyimages (baked at build time), causingujust toggle-devmodeto rebasestable-daily→stable.Handles all transport prefix formats via
sed -E 's|^.*://||; s|^[a-z-]+:||':ostree-image-signed:docker://ghcr.io/...✓ostree-unverified-registry:ghcr.io/...✓fix: install-opentabletdriver — unload conflicting kernel drivers immediately
Closes #340
Adds
modprobe uinput+rmmod wacom hid_uclogicafter writing the blacklist file so drivers are unloaded in the current session without requiring a reboot. Also cleans up legacy rule files (90-/99-opentabletdriver.rules) before installing new ones.fix: clean-system brew path consistency
/home/linuxbrew/→/var/home/linuxbrew/to match the path used everywhere else (update.just, etc.). Uses explicit path to matchupdate.justguard.Lab verification
Image:
ghcr.io/ublue-os/bluefin:stable+ common fix layer (OCI overlay, no RPM builds)Platform: titan-bluefin KubeVirt VM, ghost lab (192.168.1.102), 2026-05-24
gsettings get org.gnome.shell favorite-appsrpm-ostree status -b --jsontransport prefix striprmmod wacompresentgrep rmmod /usr/share/ublue-os/just/apps.just/var/homegrep linuxbrew /usr/share/ublue-os/just/default.justAssisted-by: claude-sonnet-4-5 via pi
Summary by CodeRabbit
Bug Fixes
Chores