Skip to content

refactor: extract isMusl() to a shared module (deduplicate 4 implementations) #822

Description

@anandgupta42

Found during v0.7.1 release review (Tech Lead persona).

The same musl-detection logic exists in four places:

  • packages/opencode/script/build.ts:208-220 — TS, used by build-time --single guard
  • packages/opencode/bin/altimate:156-171 — JS (the npm wrapper) — early-exit
  • packages/opencode/script/postinstall.mjs:50-71 — MJS, npm postinstall early-exit
  • install:117-133 — bash, curl-install early-exit

The TS/JS/MJS copies should be lifted to packages/opencode/script/lib/platform.mjs (or equivalent) and imported. The bash one stays — different language.

Why this isn't in v0.7.1

The review explicitly flagged this as a P2 (drifting fix points), and the user's rule is "Don't add features, refactor, or introduce abstractions beyond what the task requires." The v0.7.1 fix scope was the curl-install crash + binary rename. Refactor in a follow-up.

Acceptance

  • Single shared implementation, imported by all three callers.
  • Existing musl tests still pass.
  • A new test that asserts the three callers' detection results agree on a fixture set of /etc/alpine-release + ldd --version outputs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions