Skip to content

fix: add preinstall cleanup to prevent ENOTEMPTY on global upgrade#843

Merged
magyargergo merged 3 commits into
mainfrom
copilot/fix-enotempty-error-upgrading-gitnexus
Apr 15, 2026
Merged

fix: add preinstall cleanup to prevent ENOTEMPTY on global upgrade#843
magyargergo merged 3 commits into
mainfrom
copilot/fix-enotempty-error-upgrading-gitnexus

Conversation

Copilot AI commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Global upgrades (npm install -g gitnexus@<new>) fail with ENOTEMPTY because npm cannot rmdir the vendor/tree-sitter-proto/node_modules/node-addon-api directory left by the previous installation's file: dependency resolution.

Changes

  • scripts/preinstall-cleanup.cjs — new preinstall hook that removes vendor/tree-sitter-proto/node_modules and vendor/tree-sitter-proto/build before dependency resolution, clearing stale artifacts from the prior install
  • package.json — wire up "preinstall": "node scripts/preinstall-cleanup.cjs"
  • .npmignore — exclude vendor/**/node_modules and vendor/**/build from the published tarball as a secondary guard

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • extension.ladybugdb.com
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/GitNexus/GitNexus/gitnexus/node_modules/.bin/vitest run test/unit xus/�� node install.js -I /.bin/as otlin_binding/bi/bin/sh /home/REDACTED/.ca-c -I t/tree_sitter_p /hom�� ease/obj.target/tree_sitter_dart_binding/src/scanner.o.d.raw | grep -v &#39;^$&#39; bash --64 p/bin/python3 (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@vercel

vercel Bot commented Apr 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
gitnexus Ready Ready Preview, Comment Apr 15, 2026 0:35am

Request Review

…NOTEMPTY on upgrade

When upgrading gitnexus globally, npm may fail with ENOTEMPTY because it
cannot cleanly remove node_modules/ and build/ directories that a previous
installation's file: dependency resolution created inside
vendor/tree-sitter-proto/.

Add a preinstall script that removes those leftover directories before npm
resolves dependencies. Also add .npmignore entries for vendor build artifacts
as a belt-and-suspenders measure.

Fixes #836

Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/8b7c1fdd-0c20-4cf4-a64a-9e9d1c0b20ed

Co-authored-by: magyargergo <11230420+magyargergo@users.noreply.github.com>
Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/8b7c1fdd-0c20-4cf4-a64a-9e9d1c0b20ed

Co-authored-by: magyargergo <11230420+magyargergo@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix ENOTEMPTY error when upgrading gitnexus globally fix: add preinstall cleanup to prevent ENOTEMPTY on global upgrade Apr 15, 2026
Copilot AI requested a review from magyargergo April 15, 2026 12:36
@github-actions

github-actions Bot commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Claude finished @magyargergo's task in 2m 23s —— View job


PR Review: fix: add preinstall cleanup to prevent ENOTEMPTY on global upgrade

Tasks:

  • Load context (AGENTS.md, GUARDRAILS.md, CONTRIBUTING.md, TESTING.md, ARCHITECTURE.md)
  • Read changed files (preinstall-cleanup.cjs, package.json, .npmignore)
  • Review against criteria
  • Post final verdict

Scope note: Several criteria in the review prompt (ManifestExtractor invocation, config.links cross-links, resolveSymbol contracts, graph schema integrity, LadybugDB single-writer invariant, MCP tool/resource contracts, staleness behavior, embeddings preservation) have zero surface overlap with this diff. This review omits those headings as not applicable and focuses on what the diff actually touches.


Correctness & Functional Completeness

Mechanism is correct. The ENOTEMPTY failure occurs because a prior global install leaves vendor/tree-sitter-proto/node_modules/ (populated by the file:./vendor/tree-sitter-proto optional dependency resolution) in the global package prefix. A subsequent global upgrade can't atomically overwrite/remove those directories. Running fs.rmSync before npm resolves deps eliminates the stale artifacts and unblocks the upgrade.

Path resolution (preinstall-cleanup.cjs:21-23): path.join(__dirname, '..', 'vendor', 'tree-sitter-proto', ...) is correct. __dirname in a .cjs file is always the script's own directory (<pkg_root>/scripts/), so .. resolves to <pkg_root>/vendor/tree-sitter-proto/ regardless of the npm working directory. This is consistent with how patch-tree-sitter-swift.cjs:32 resolves node_modules/.

files array includes scripts/ (package.json:37) so preinstall-cleanup.cjs is present in the published tarball. ✅

Best-effort semantics (preinstall-cleanup.cjs:31): warn on error but don't exit non-zero, so a permission failure or unexpected filesystem state does not abort the install. This is the right call for cleanup housekeeping.

.npmignore secondary guard (gitnexus/.npmignore:13-14): Prevents vendor/tree-sitter-proto/node_modules and vendor/tree-sitter-proto/build from being accidentally included in a future publish (e.g. if npm pack runs after a local install). The files field already whitelists vendor/, so .npmignore is the correct mechanism to exclude subpaths. ✅

Code Clarity & Clean Code

Naming and cohesion: The script is clear, self-contained, and well-commented. The block comment references the causal issue (#836) and explains the mechanism. Follows the established pattern from scripts/patch-tree-sitter-swift.cjs.

existsSync + rmSync { force: true } redundancy (preinstall-cleanup.cjs:27-29): The { force: true } flag silences "no such file" errors from rmSync, making the outer existsSync check redundant (triple-safety: existsSynctry/catchforce:true). This is harmless but slightly over-defensive. — nit

No dead code, no barrel re-exports, no // removed comments.

No drive-by refactors outside the stated scope. ✅

Test Coverage & Change Safety

No unit tests added. For a two-path filesystem cleanup script whose logic is: "if directory exists, delete it; else skip; catch and warn," unit coverage is low-value (would just mock fs and assert it was called). TESTING.md's regression-test trigger list covers graph schema, query contracts, MCP shapes, and embedding code paths — none of which are touched here. — non-blocking

TypeScript impact: No .ts files changed; tsc --noEmit is unaffected. ✅

Pre-commit hook parity: The changed files are .cjs and .json; the husky pre-commit runs tsc --noEmit + vitest run --project default on staged gitnexus/ files. Neither check applies to these file types. ✅

Performance

No hot-path code touched. The preinstall script runs once per npm install, performs two existsSync + conditional rmSync calls — O(1) with negligible overhead. No concern.

Operational Risk

Windows/cross-platform: path.join handles path separators correctly. fs.rmSync(dir, { recursive: true, force: true }) is stable on Windows since Node 14.14; the project requires Node ≥ 20 (engines.node). No FD lifecycle issues (pure sync, no streams). ✅

Runs on every npm install, not only global upgrades: The preinstall hook fires on local developer installs too, deleting vendor/tree-sitter-proto/node_modules and build before npm recreates them. This is intentional and safe — the directories are transient build artifacts. Confirmed by vendor/tree-sitter-proto/.gitignore (they're already gitignored). ✅

vendor/**/build scope in .npmignore (gitnexus/.npmignore:14): The double-glob vendor/**/build excludes any build/ directory at any depth under vendor/, not just tree-sitter-proto/build. With the current single vendor package this is fine; worth knowing if more vendor packages are added with intentional build artifacts to ship. — nit

Rollback: Safe without re-analyze. Reverting removes the preinstall hook; the ENOTEMPTY issue returns for global upgrades but no graph, index, or MCP state is affected.

Maintainability

Pipeline Phase DAG (ARCHITECTURE.md): Not applicable — this is packaging infrastructure, not an ingestion pipeline concern.

Future contributor ergonomics: The script location (scripts/preinstall-cleanup.cjs) mirrors the existing scripts/patch-tree-sitter-swift.cjs pattern. The package.json preinstall entry is the natural first place a contributor would look for lifecycle hooks. The issue reference in the comment (#836) provides full causal context. ✅

Non-Negotiables (GUARDRAILS.md)

Check Result
No secrets, tokens, or machine-specific paths
No blind find-and-replace renames ✅ (only new files added)
impact (upstream) for modified shared symbols ✅ (no shared symbols modified)
Conventional commit style fix: add preinstall cleanup to prevent ENOTEMPTY on global upgrade
PolyForm Noncommercial license untouched

Final Verdict

Ready to merge — no blocking issues.

The change is minimal, targeted, and correct. It directly addresses the ENOTEMPTY regression pattern (consistent with the prior ENOTEMPTY on Windows class of issues noted in the review criteria), uses established patterns from the codebase (patch-tree-sitter-swift.cjs), and is safe to roll back. The two nits (redundant existsSync and broad vendor/**/build glob) are cosmetic and do not affect correctness or safety.

@magyargergo magyargergo marked this pull request as ready for review April 15, 2026 12:58
@github-actions github-actions Bot added the bug Something isn't working label Apr 15, 2026
@magyargergo magyargergo merged commit 7a5ab57 into main Apr 15, 2026
21 of 24 checks passed
@magyargergo magyargergo deleted the copilot/fix-enotempty-error-upgrading-gitnexus branch April 15, 2026 13:10
magyargergo added a commit that referenced this pull request Apr 15, 2026
… global upgrade

PR #843's preinstall cleanup hook cannot address the reported bug because
it runs on the NEW package's staging tree, not the OLD install being
removed. Issue #836 still reproduces on 1.6.2-rc.8.

Root cause: vendor/tree-sitter-proto was declared as `file:` dep with its
own `dependencies` and `install` script, so npm created
`vendor/tree-sitter-proto/node_modules/node-addon-api/` at install time,
which blocked npm's rmdir on global upgrade.

Changes:
- Strip `dependencies` and `install` script from the vendored sub-package's
  package.json so npm no longer creates a nested node_modules or runs a
  lifecycle script under vendor/.
- Hoist `node-addon-api` and `node-gyp-build` into gitnexus
  optionalDependencies; npm resolves them at the consumer's top level.
- Add scripts/build-tree-sitter-proto.cjs modeled on patch-tree-sitter-swift.cjs.
  Runs at gitnexus postinstall, best-effort: skips cleanly on missing
  toolchain or --ignore-scripts so non-proto functionality keeps working.
- Remove scripts/preinstall-cleanup.cjs — dead code; cannot run against
  the old install being removed.
- Keep .npmignore entries from PR #843 (tarball hygiene, still correct).
- Add explicit .gitignore rules for gitnexus/vendor/**/build and
  gitnexus/vendor/**/node_modules (closes the repo-side hygiene gap).
- Add .github/workflows/ci-global-upgrade.yml: matrix smoke test that
  installs the previously-published rc globally, upgrades to the packed
  current branch, and verifies no vendor install-time artifacts survive.
  Runs on macOS (reporter's platform), Linux, and Windows. Also includes
  an --ignore-scripts degraded-mode lane. Wired into ci.yml gate.

Plan: docs/plans/2026-04-15-002-fix-tree-sitter-proto-vendor-deps-plan.md

Phase 1 (this commit) addresses the reported `node_modules/node-addon-api`
hazard. Phase 2 (follow-up) will migrate to prebuildify + prebuilt .node
binaries in the tarball — the 2026 canonical shape for tree-sitter
grammars, which eliminates the postinstall compile path entirely.

Refs #836
magyargergo added a commit that referenced this pull request Apr 15, 2026
…Y on global upgrade (#846)

* fix: devendor tree-sitter-proto install lifecycle to fix ENOTEMPTY on global upgrade

PR #843's preinstall cleanup hook cannot address the reported bug because
it runs on the NEW package's staging tree, not the OLD install being
removed. Issue #836 still reproduces on 1.6.2-rc.8.

Root cause: vendor/tree-sitter-proto was declared as `file:` dep with its
own `dependencies` and `install` script, so npm created
`vendor/tree-sitter-proto/node_modules/node-addon-api/` at install time,
which blocked npm's rmdir on global upgrade.

Changes:
- Strip `dependencies` and `install` script from the vendored sub-package's
  package.json so npm no longer creates a nested node_modules or runs a
  lifecycle script under vendor/.
- Hoist `node-addon-api` and `node-gyp-build` into gitnexus
  optionalDependencies; npm resolves them at the consumer's top level.
- Add scripts/build-tree-sitter-proto.cjs modeled on patch-tree-sitter-swift.cjs.
  Runs at gitnexus postinstall, best-effort: skips cleanly on missing
  toolchain or --ignore-scripts so non-proto functionality keeps working.
- Remove scripts/preinstall-cleanup.cjs — dead code; cannot run against
  the old install being removed.
- Keep .npmignore entries from PR #843 (tarball hygiene, still correct).
- Add explicit .gitignore rules for gitnexus/vendor/**/build and
  gitnexus/vendor/**/node_modules (closes the repo-side hygiene gap).
- Add .github/workflows/ci-global-upgrade.yml: matrix smoke test that
  installs the previously-published rc globally, upgrades to the packed
  current branch, and verifies no vendor install-time artifacts survive.
  Runs on macOS (reporter's platform), Linux, and Windows. Also includes
  an --ignore-scripts degraded-mode lane. Wired into ci.yml gate.

Plan: docs/plans/2026-04-15-002-fix-tree-sitter-proto-vendor-deps-plan.md

Phase 1 (this commit) addresses the reported `node_modules/node-addon-api`
hazard. Phase 2 (follow-up) will migrate to prebuildify + prebuilt .node
binaries in the tarball — the 2026 canonical shape for tree-sitter
grammars, which eliminates the postinstall compile path entirely.

Refs #836

* fix(ci): ci-global-upgrade should be reusable-only and use setup-gitnexus

Three issues caught by CI on PR #846:

1. Concurrency linter rejected the `CIGU-` prefix (allowlist is
   `${{ github.workflow }}` or substring `CI-`). The literal-prefix
   guidance in ci.yml is specifically about disambiguating when
   reusable workflows run in nested contexts, and ci-global-upgrade
   doesn't need its own concurrency block at all — the caller
   (ci.yml) already governs concurrency for nested invocations.

2. `npm install` in gitnexus/ runs `prepare: node scripts/build.js`,
   which depends on gitnexus-shared/dist being built first. Other CI
   jobs handle this via the setup-gitnexus composite action. Use it
   here too (with build: 'false' — we only need the dep graph, then
   npm pack runs prepack which builds gitnexus itself).

3. Removed `pull_request` and `workflow_dispatch` triggers. The
   workflow is now pure `workflow_call` — invoked once from ci.yml
   via `uses:`. This avoids the duplicate-run problem where both the
   top-level pull_request trigger AND the nested workflow_call would
   fire on every PR.

* fix(ci): relax vendor build/ guard and use bash shell on Windows

Two fixes for ci-global-upgrade failures on PR #846:

1. The guard after the upgrade step was rejecting vendor/tree-sitter-proto/build/
   in the global install. That was too strict. The original #836 bug was
   about vendor/tree-sitter-proto/node_modules/ specifically, not build/.
   The build/ directory appears because node-gyp-build compiles through the
   symlink npm creates at node_modules/gitnexus/node_modules/tree-sitter-proto,
   and its contents are plain .node, .obj, .lib files that rmdir handles
   without trouble. We know this empirically because the test got past the
   upgrade step in the run where the old vendor/node_modules was present.
   The guard now only flags nested node_modules, which is what the fix
   actually removes.

2. The Windows --ignore-scripts lane failed with ENOENT when npm tried to
   open the tarball. The path was computed in a bash step using $(pwd),
   which on Windows returns /d/a/... form, but npm install ran in the
   default cmd shell and received a mangled Windows path. Adding
   shell: bash to the install steps keeps path handling consistent.
magyargergo added a commit that referenced this pull request Apr 18, 2026
Bumps gitnexus to v1.6.2 and adds the matching CHANGELOG entry.

Highlights since v1.6.1 (61 commits):
  - Docker support (#848)
  - Language-agnostic heritage / call / variable extractors
    (config+factory pattern, #877 #878 #890)
  - AST-aware embedding chunking (#889)
  - jQuery / axios HTTP consumer detection (#887)
  - SemanticModel wired as first-class resolution input, SM-20 (#885)
  - ImportSemantics split into per-strategy hooks (#886)
  - Python dotted-import fix (#899); worker warnings non-terminal
    (#900 / #261); global-install ENOTEMPTY fixes (#843 #846);
    embeddings staleness fix (#831)

See gitnexus/CHANGELOG.md for the full list.

After merge, tag `v1.6.2` triggers publish.yml which runs CI,
verifies tag↔package.json match, publishes to npm with provenance,
and creates the GitHub Release using the extracted CHANGELOG body.
@magyargergo magyargergo mentioned this pull request Apr 18, 2026
5 tasks
magyargergo added a commit that referenced this pull request Apr 18, 2026
Bumps gitnexus to v1.6.2 and adds the matching CHANGELOG entry.

Highlights since v1.6.1 (61 commits):
  - Docker support (#848)
  - Language-agnostic heritage / call / variable extractors
    (config+factory pattern, #877 #878 #890)
  - AST-aware embedding chunking (#889)
  - jQuery / axios HTTP consumer detection (#887)
  - SemanticModel wired as first-class resolution input, SM-20 (#885)
  - ImportSemantics split into per-strategy hooks (#886)
  - Python dotted-import fix (#899); worker warnings non-terminal
    (#900 / #261); global-install ENOTEMPTY fixes (#843 #846);
    embeddings staleness fix (#831)

See gitnexus/CHANGELOG.md for the full list.

After merge, tag `v1.6.2` triggers publish.yml which runs CI,
verifies tag↔package.json match, publishes to npm with provenance,
and creates the GitHub Release using the extracted CHANGELOG body.
github714801013 pushed a commit to github714801013/GitNexus that referenced this pull request Apr 28, 2026
…bhigyanpatwari#843)

* Initial plan

* fix: add preinstall cleanup for vendor/tree-sitter-proto to prevent ENOTEMPTY on upgrade

When upgrading gitnexus globally, npm may fail with ENOTEMPTY because it
cannot cleanly remove node_modules/ and build/ directories that a previous
installation's file: dependency resolution created inside
vendor/tree-sitter-proto/.

Add a preinstall script that removes those leftover directories before npm
resolves dependencies. Also add .npmignore entries for vendor build artifacts
as a belt-and-suspenders measure.

Fixes abhigyanpatwari#836

Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/8b7c1fdd-0c20-4cf4-a64a-9e9d1c0b20ed

Co-authored-by: magyargergo <11230420+magyargergo@users.noreply.github.com>

* fix: log warnings in preinstall cleanup catch block

Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/8b7c1fdd-0c20-4cf4-a64a-9e9d1c0b20ed

Co-authored-by: magyargergo <11230420+magyargergo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: magyargergo <11230420+magyargergo@users.noreply.github.com>
github714801013 pushed a commit to github714801013/GitNexus that referenced this pull request Apr 28, 2026
…Y on global upgrade (abhigyanpatwari#846)

* fix: devendor tree-sitter-proto install lifecycle to fix ENOTEMPTY on global upgrade

PR abhigyanpatwari#843's preinstall cleanup hook cannot address the reported bug because
it runs on the NEW package's staging tree, not the OLD install being
removed. Issue abhigyanpatwari#836 still reproduces on 1.6.2-rc.8.

Root cause: vendor/tree-sitter-proto was declared as `file:` dep with its
own `dependencies` and `install` script, so npm created
`vendor/tree-sitter-proto/node_modules/node-addon-api/` at install time,
which blocked npm's rmdir on global upgrade.

Changes:
- Strip `dependencies` and `install` script from the vendored sub-package's
  package.json so npm no longer creates a nested node_modules or runs a
  lifecycle script under vendor/.
- Hoist `node-addon-api` and `node-gyp-build` into gitnexus
  optionalDependencies; npm resolves them at the consumer's top level.
- Add scripts/build-tree-sitter-proto.cjs modeled on patch-tree-sitter-swift.cjs.
  Runs at gitnexus postinstall, best-effort: skips cleanly on missing
  toolchain or --ignore-scripts so non-proto functionality keeps working.
- Remove scripts/preinstall-cleanup.cjs — dead code; cannot run against
  the old install being removed.
- Keep .npmignore entries from PR abhigyanpatwari#843 (tarball hygiene, still correct).
- Add explicit .gitignore rules for gitnexus/vendor/**/build and
  gitnexus/vendor/**/node_modules (closes the repo-side hygiene gap).
- Add .github/workflows/ci-global-upgrade.yml: matrix smoke test that
  installs the previously-published rc globally, upgrades to the packed
  current branch, and verifies no vendor install-time artifacts survive.
  Runs on macOS (reporter's platform), Linux, and Windows. Also includes
  an --ignore-scripts degraded-mode lane. Wired into ci.yml gate.

Plan: docs/plans/2026-04-15-002-fix-tree-sitter-proto-vendor-deps-plan.md

Phase 1 (this commit) addresses the reported `node_modules/node-addon-api`
hazard. Phase 2 (follow-up) will migrate to prebuildify + prebuilt .node
binaries in the tarball — the 2026 canonical shape for tree-sitter
grammars, which eliminates the postinstall compile path entirely.

Refs abhigyanpatwari#836

* fix(ci): ci-global-upgrade should be reusable-only and use setup-gitnexus

Three issues caught by CI on PR abhigyanpatwari#846:

1. Concurrency linter rejected the `CIGU-` prefix (allowlist is
   `${{ github.workflow }}` or substring `CI-`). The literal-prefix
   guidance in ci.yml is specifically about disambiguating when
   reusable workflows run in nested contexts, and ci-global-upgrade
   doesn't need its own concurrency block at all — the caller
   (ci.yml) already governs concurrency for nested invocations.

2. `npm install` in gitnexus/ runs `prepare: node scripts/build.js`,
   which depends on gitnexus-shared/dist being built first. Other CI
   jobs handle this via the setup-gitnexus composite action. Use it
   here too (with build: 'false' — we only need the dep graph, then
   npm pack runs prepack which builds gitnexus itself).

3. Removed `pull_request` and `workflow_dispatch` triggers. The
   workflow is now pure `workflow_call` — invoked once from ci.yml
   via `uses:`. This avoids the duplicate-run problem where both the
   top-level pull_request trigger AND the nested workflow_call would
   fire on every PR.

* fix(ci): relax vendor build/ guard and use bash shell on Windows

Two fixes for ci-global-upgrade failures on PR abhigyanpatwari#846:

1. The guard after the upgrade step was rejecting vendor/tree-sitter-proto/build/
   in the global install. That was too strict. The original abhigyanpatwari#836 bug was
   about vendor/tree-sitter-proto/node_modules/ specifically, not build/.
   The build/ directory appears because node-gyp-build compiles through the
   symlink npm creates at node_modules/gitnexus/node_modules/tree-sitter-proto,
   and its contents are plain .node, .obj, .lib files that rmdir handles
   without trouble. We know this empirically because the test got past the
   upgrade step in the run where the old vendor/node_modules was present.
   The guard now only flags nested node_modules, which is what the fix
   actually removes.

2. The Windows --ignore-scripts lane failed with ENOENT when npm tried to
   open the tarball. The path was computed in a bash step using $(pwd),
   which on Windows returns /d/a/... form, but npm install ran in the
   default cmd shell and received a mangled Windows path. Adding
   shell: bash to the install steps keeps path handling consistent.
github714801013 pushed a commit to github714801013/GitNexus that referenced this pull request Apr 28, 2026
Bumps gitnexus to v1.6.2 and adds the matching CHANGELOG entry.

Highlights since v1.6.1 (61 commits):
  - Docker support (abhigyanpatwari#848)
  - Language-agnostic heritage / call / variable extractors
    (config+factory pattern, abhigyanpatwari#877 abhigyanpatwari#878 abhigyanpatwari#890)
  - AST-aware embedding chunking (abhigyanpatwari#889)
  - jQuery / axios HTTP consumer detection (abhigyanpatwari#887)
  - SemanticModel wired as first-class resolution input, SM-20 (abhigyanpatwari#885)
  - ImportSemantics split into per-strategy hooks (abhigyanpatwari#886)
  - Python dotted-import fix (abhigyanpatwari#899); worker warnings non-terminal
    (abhigyanpatwari#900 / abhigyanpatwari#261); global-install ENOTEMPTY fixes (abhigyanpatwari#843 abhigyanpatwari#846);
    embeddings staleness fix (abhigyanpatwari#831)

See gitnexus/CHANGELOG.md for the full list.

After merge, tag `v1.6.2` triggers publish.yml which runs CI,
verifies tag↔package.json match, publishes to npm with provenance,
and creates the GitHub Release using the extracted CHANGELOG body.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ENOTEMPTY error when upgrading gitnexus globally (node-addon-api rmdir failure)

2 participants