fix(cli): unblock CI — skip release binary download in source checkout#48
Merged
Conversation
postinstall pins its download to the release tag matching packages/cli's version. In the monorepo that tag is routinely not a published release, and tags cut before the release workflow began emitting checksums.txt have nothing to verify against. Verification failure is a hard failure by design, so `bun install --frozen-lockfile` died on every CI run since alpha.39 -- before lint, typecheck, or a single test. Nothing in the repo consumes the download: CI builds the CLI from source and wraps dist/index.js on PATH. Skip it when the private workspace root is found two levels up, which the npm tarball never ships, so consumer installs keep downloading and verifying unchanged.
Pre-existing 203-char line failing eslint max-len. Only surfaced once `bun install` stopped failing first and CI reached the lint step.
build.include resolves under paths.sql now, so `sql/00_types` expands to sql/sql/00_types and matches nothing. The pg example was migrated to bare segments; mssql was missed, so its build ran zero files, reported success, and left the schema uncreated -- `change ff` then failed on a missing dbo.Tag. Mirrors examples/llm-memory-db-pg/.noorm/settings.yml.
damusix
marked this pull request as ready for review
July 25, 2026 07:06
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.
CI has failed on every
nextrun since 2026-07-13. Three stacked blockers — each only visible once the previous was cleared.1.
bun install --frozen-lockfilefailed (the reported symptom).packages/cli's postinstall downloads the release binary for the tag matching its own version, then hard-fails if the checksum can't be verified. Release@noormdev/cli@1.0.0-alpha.39was cut 2026-07-11; the workflow step emittingchecksums.txtlanded 2026-07-12, so that tag has no checksums file and verification could never succeed.Nothing in the repo consumes that download — CI builds the CLI from source and wraps
dist/index.json PATH. Fix: skip the download in a source checkout, keyed on the private workspace root two levels up (never shipped in the npm tarball). Consumer installs still download and verify unchanged; the checksum guarantee is untouched.This was broader than one bad release: the download is pinned to the tag matching
packages/cli's version, so any commit after a version bump would breakbun install— the tag doesn't exist yet. Fresh local clones hit it too; it stayed hidden becausepackages/cli/bin/is gitignored and the script early-returns when the binary is already present.2. eslint
max-lenintests/sdk/destructive-ops.test.ts.Pre-existing (from
7a78d85), never reported because CI died at install first.3.
example-llm-memory-db-mssql— a regression onnext.build.includenow resolves underpaths.sql, sosql/00_typesexpands tosql/sql/00_typesand matches nothing. The pg example was migrated to bare segments; mssql was missed. Its build ran zero files, reported success, left the schema uncreated, andchange ffthen failed on a missingdbo.Tag. Confirmed a regression — this job passed on master run29167359589.Verification: full CI green on run
30147908740—build,cli-e2e,example-todo-db,example-llm-memory-db-mssqlall pass. (Dispatched manually:ci.ymlonly triggers on PRs targetingmain/master, so a PR intonextruns nothing.)Two issues found, deliberately not fixed here — both behavior changes needing a decision:
noorm run buildreportssuccessafter matching zero files. This is exactly what let Version Packages (alpha) #3 ship silently; a build that runs nothing is indistinguishable from one that worked.tests/cli/run/dir.test.tsis flaky on Linux (failed, then passed on re-run with no code change). Mechanism:src/cli/run/dir.ts:76callsprocess.exit(1)before the--jsonoutput at line 78, so on the error path no batch JSON is printed andextractJsonObjectpicks up an unrelated log line. Not reproducible on macOS.