Repository navigation
Tests read their own bridge.conf, not the developer's - #64
Merged
Merged
Conversation
test-setup.ts already points XDG_CACHE_HOME at a scratch dir so no test touches the developer's caches. bridge.conf was not covered: contact-search reads country_code= through XDG_CONFIG_HOME (falling back to ~/.config), and the preload never set it. On a machine set up outside North America (country_code=47) five tier2 cases failed — "(404) 555-0123" normalized to +474045550123 — while CI, which has no bridge.conf, stayed green. XDG_CONFIG_HOME now gets a scratch dir beside the cache one. One test proves the isolation reaches the reader: the default country code is 1 in the scratch dir, and a bridge.conf written there is what changes it. The test first asserts the variable is set, because without it the scratch path is the literal ./undefined/, which is how stray artifacts of that name get committed. undefined/st.json is removed again: 7d569c3 took it out after 2.2.0 and nixfred#50 brought it back. It is the collector's state file written with an unset directory variable — the same class of artifact this preload exists to prevent. Measured: five tier2 failures with country_code=47 before, none after, on the machine that had them and against a fake home on a clean one.
nixfred
added a commit
that referenced
this pull request
Sep 13, 2026
… entry Release audit before 2.5.0, same method as 2.4.0: every merge since v2.4.0 checked against Unreleased. Missing and now written: #73 (security code on wl-copy stdin), #50 (failed send keeps its bubble), #51 (accessible composer, spelling, arrow keys), #52 (resizable panel + compact header), #53 (Ctrl+1-9 pins, back arrow), #55 + 2197e0d (unnamed groups named after people, composite avatar), #59/#60/#61 (contact scans, read-only card view, vCard copy/save), #48 (window restores on its workspace), #36 (no uninvited consent prompt from blip-check). Attributions checked against gh PR authors: #48 is @jefehoser; #36 reported by @jacobaross. Skipped as not user-facing: #64 (test isolation), #65 (README line), CONTRIBUTORS docs. No version bump yet: blip-b2 is landing the avatar-cache fix and #62 for Fred, and 2.5.0 waits for those. LR-T: changelog, release-audit, 2.5.0, attribution, backfill LR-D: blip, docs, release LR-K: audit-the-release-not-assume-it Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016PeUtMhaSaA9aiazebBUMS
3 of 5 tasks
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.
What
The test preload now points
XDG_CONFIG_HOMEat a scratch dir, the way it already does forXDG_CACHE_HOME, so no test reads the developer's ownbridge.conf. One test proves the isolation reaches the reader.Why
contact-search.tsreadscountry_code=throughXDG_CONFIG_HOME(falling back to~/.config), and the preload never set it. On a machine set up outside North America (country_code=47) fivetier2.test.tscases fail:(404) 555-0123normalizes to+474045550123. CI has nobridge.conf, so it stays green, and the failures only show up for a contributor who actually runs Blip. That is the wrong way round for a test suite.How
test-setup.ts— one line:XDG_CONFIG_HOMEgets a scratch dir beside the cache one; the comment says why.tier2.test.ts— one test in the country-code block: the default country code is1in the scratch dir, and abridge.confwritten there is what changes it to47. It first asserts the variable is set, because without it the scratch path is the literal./undefined/, which is how stray artifacts of that name get committed.undefined/st.json— removed again. 7d569c3 took it out after 2.2.0 and Retain failed optimistic sends with visible failure reasons #50 brought it back; it is the collector's state file written with an unset directory variable, the same class of artifact this preload exists to prevent.No production code changes.
How it was verified
bun testis green (CI will check) — 474 passcountry_code=47): tier2 went from 80 pass / 5 fail to 85 pass / 0 fail; reproduced on a clean machine with a fake$HOMEcarryingcountry_code=47(5 fail before, 0 after); the new test fails without the preload changeCLAUDE.md→ no