Repository navigation
Fix red security scan on main, a flaky card-reconciliation test, and macOS test portability - #627
Merged
Merged
Conversation
bundler-audit on main fails on advisories published today against loofah 2.25.2, nokogiri 1.19.4 and rails-html-sanitizer 1.7.1. Conservative update of only those three gems to loofah 2.25.3, nokogiri 1.19.7 and rails-html-sanitizer 1.7.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The test read /proc/loadavg and /proc/meminfo directly, so it failed on a Mac. HostVitals now reads /proc through one small method that the test stubs with fixed contents, checking the exact CPU and memory percentages instead of only their types. Disk and database size still come from the real host. The real /proc read still runs where /proc exists (Linux CI). A new test pins that an unreadable reading is nil. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Under a C/POSIX locale (a shell without LANG, as on some Macs) Ruby returns ENV values as binary, so a label such as "SER8 · Incus" did not equal the UTF-8 string and the platform overview test failed. The label is now read as UTF-8, and a value that is not valid UTF-8 shows as "Not configured" instead of raising. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PosPaymentReconciliationJob takes one machine-wide flock and skips its sweep when the lock is held. Parallel test workers shared that file, so when two PosCardPaymentTest cases ran the job at the same moment one silently did nothing. That intermittently failed the overlap test (line 72) and the rotation test (line 56) on main and on several PRs. The lock path is now one small method, and the tests point it at a temporary file per test. Holding the real lock from another process reproduces both failures on the old code, and they pass on the new. Production still uses tmp/locks/pos-payment-reconciliation.lock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
techmore
added a commit
that referenced
this pull request
Nov 3, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes what is red on
maintoday, fixes one intermittent failure, and makes two tests pass on a Mac.Changes
Security scan (red on
main). bundler-audit fails on advisories published today against loofah 2.25.2, nokogiri 1.19.4 and rails-html-sanitizer 1.7.1. This is a conservative update of only those three gems: loofah 2.25.3, nokogiri 1.19.7, rails-html-sanitizer 1.7.2.bundler-audit check --updatepasses locally.Host vitals test, portable. It read
/procdirectly, so it failed on macOS.HostVitalsnow reads/procthrough one small method that the test stubs with fixed contents. The test checks exact CPU and memory percentages instead of only their types. Disk and database size still come from the real host. The real/procread still runs where/procexists (Linux CI) and skips elsewhere. A new test checks that an unreadable reading isnil, never 0.Platform overview instance label. Under a C/POSIX locale, such as a shell without
LANG, Ruby returnsENVvalues as binary, so "SER8 · Incus" failed to match. The label is now read as UTF-8 under any locale. A value that is not valid UTF-8 shows as "Not configured" instead of raising.Intermittent
CI (sqlite3)failure inPosCardPaymentTest.PosPaymentReconciliationJobtakes one machine-wideflockand skips its sweep when the lock is held. Parallel test workers shared that file, so one test's job sometimes did nothing. This hit 6 of the last 25 failed CI runs: Web app UX pass: phone top bar, 24px targets, Dark contrast, clearer Settings and Staff #623, Bump @shopify/cli from 4.9.4 to 5.0.0 #597 and Bump the expo-sdk-patches group across 1 directory with 3 updates #598 at line 72, Speed score: 9 means ~2 s (log scale to 0 at 120 s) #588 at line 56. The lock path is now one method, and the tests use a temporary file per test. Holding the real lock from another process reproduces both failures on the old code, and they pass on the new one. Production keeps the same lock file.Overlap
main.Testing
bin/rails testsuite, the product-site checks and the node tests.🤖 Generated with Claude Code