Skip to content

install-relayfile-mount: local-dist fallback path never matches relayfile's Makefile layout — always falls through to stale release #122

@kjgbot

Description

@kjgbot

Summary

scripts/install-relayfile-mount (run automatically by npm run build) has a local-dist fallback that can never win: it expects ../relayfile/dist/relayfile-mount-darwin-arm64 (flat, arch-suffixed filename), but relayfile's Makefile writes dist/darwin_arm64/relayfile-mount (arch subdirectory, unsuffixed). The layouts have never matched, so every install silently falls through to the stale GitHub release.

Impact (real incident, 2026-06-06)

During the #206 mount-contract rollout, a locally-built binary from merged relayfile main (relayfile#243) was installed to pear/bin/relayfile-mount — then a routine npm run build re-ran this script and silently replaced it with the v0.8.10 release (pre-#243), respawning mounts on the old broken contract mid-incident. Cost ~30 min of confusion and a third binary reinstall.

Fix

Align the two layouts (either side works):

  • teach the script to probe ../relayfile/dist/<GOOS>_<GOARCH>/relayfile-mount (Makefile layout), or
  • have relayfile's Makefile also emit the flat arch-suffixed name the script expects.

Also log which source (local dist vs release vs marker) actually won, so a silent fallback is visible.

Related

Sibling issue: installFromFile in-place copy / macOS signature SIGKILL. Found during the 2026-06-05/06 double-pathing incident (pear docs/specs/2026-06-05-integration-events-debug-handoff.md follow-on work).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions