Skip to content

fix(cli): unblock CI — skip release binary download in source checkout#48

Merged
damusix merged 3 commits into
nextfrom
worktree-fix-ci-postinstall-skip
Jul 25, 2026
Merged

fix(cli): unblock CI — skip release binary download in source checkout#48
damusix merged 3 commits into
nextfrom
worktree-fix-ci-postinstall-skip

Conversation

@damusix

@damusix damusix commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

CI has failed on every next run since 2026-07-13. Three stacked blockers — each only visible once the previous was cleared.

1. bun install --frozen-lockfile failed (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.39 was cut 2026-07-11; the workflow step emitting checksums.txt landed 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.js on 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 break bun install — the tag doesn't exist yet. Fresh local clones hit it too; it stayed hidden because packages/cli/bin/ is gitignored and the script early-returns when the binary is already present.

2. eslint max-len in tests/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 on next.
build.include now resolves under paths.sql, so sql/00_types expands to sql/sql/00_types and matches nothing. The pg example was migrated to bare segments; mssql was missed. Its build ran zero files, reported success, left the schema uncreated, and change ff then failed on a missing dbo.Tag. Confirmed a regression — this job passed on master run 29167359589.

Verification: full CI green on run 30147908740build, cli-e2e, example-todo-db, example-llm-memory-db-mssql all pass. (Dispatched manually: ci.yml only triggers on PRs targeting main/master, so a PR into next runs nothing.)


Two issues found, deliberately not fixed here — both behavior changes needing a decision:

  • noorm run build reports success after 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.ts is flaky on Linux (failed, then passed on re-run with no code change). Mechanism: src/cli/run/dir.ts:76 calls process.exit(1) before the --json output at line 78, so on the error path no batch JSON is printed and extractJsonObject picks up an unrelated log line. Not reproducible on macOS.

damusix added 3 commits July 25, 2026 02:03
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
damusix marked this pull request as ready for review July 25, 2026 07:06
@damusix
damusix merged commit 75492aa into next Jul 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant