--- id: "bug-1619" status: "fixed" status_updated: "2026-09-24" status_note: "" component: "build" severity: "unknown" timestamp: "2026-08-21T00:00:00Z" last_seen: "2026-09-19T09:00:00Z" occurrences: 1 files: ["src/tools/test-dirty-fingerprint-nix-production-path.sh"] tags: ["bash", "grep", "self-check", "false-positive", "dirty-content-fingerprint", "task-6.3", "src/tools"] related: [] legacy: true --- # bug-1619: FAIL: this script itself contains the string '--impure' -- the Observable requires no --impure… ## Description FAIL: this script itself contains the string '--impure' -- the Observable requires no --impure flag anywhere. ## Environment _Not recorded (migrated from buglog.json)._ ## Reproduction _Not recorded (migrated from buglog.json)._ ## Root cause The script's own self-check for 'no --impure flag used anywhere' did a blind whole-file `grep -q -- '--impure' "$0"`. The script's own header documentation and status messages deliberately discuss '(no --impure)' in prose extensively (to explain the Observable to a reader) -- a false positive against the script's own comments/log strings, not an actual nix invocation using the flag. ## Fix Narrowed the check to `grep -A2 -E '^[[:space:]]*nix (eval|build|develop|log)\b' "$0" | grep -q -- '--impure'` -- only lines that begin a real nix command invocation (plus 2 following lines, to cover this script's own multi-line backslash-continued invocations), not prose. Verified the narrower grep correctly isolates exactly the script's two real `nix eval`/`nix build` invocation sites and neither contains --impure. ## Verification _Not recorded (migrated from buglog.json)._ ## References _Not recorded (migrated from buglog.json)._