Skip to content

v1.3.4: multiple install/verify/update bugs on Windows #8

@tech-synity

Description

@tech-synity

Environment

  • Package: @synity/bitrix-skills v1.3.4 (latest on npm)
  • Run via: npx @synity/bitrix-skills <command>
  • OS: Windows 11 (win32)
  • Node: v24.15.0
  • npm: cached _npx\dfd8575e6ef32e7f
  • Project: D:\SYNITY (no .git/)
  • Prior state: bx-task + task-sync v0.3.0-pre already installed via earlier CLI v1.2.1

Bug 1: verify reports files missing when they exist on disk

After update, verify outputs missing for every file in bx-task:

bx-task (1.1.0)
  X missing: C:\Users\dangt\.claude\skills\bx-task\lib\bx-api.sh
  X missing: C:\Users\dangt\.claude\skills\bx-task\lib\bx-checklist.sh
  ... (all 19 files)

But Get-ChildItem shows all 19 files present:

C:\Users\dangt\.claude\skills\bx-task\SKILL.md
C:\Users\dangt\.claude\skills\bx-task\lib\bx-api.sh
... (all 19 present)

Likely cause: checksum manifest path resolution mismatch on Windows (forward vs back slashes? case sensitivity?).


Bug 2: update fails for task-sync — missing skill/SKILL.md in published tarball

Updating task-sync...
copy error: ENOENT: no such file or directory,
copyfile 'npm-cache\_npx\...\src\features\task-sync\assets\skill\SKILL.md'
      -> 'C:\Users\dangt\.claude\skills\bitrix-sync-install\SKILL.md'
X task-sync update failed (exit 1)

The asset src/features/task-sync/assets/skill/SKILL.md is referenced by the install handler but is not present in the published npm tarball. Likely missed in prepublish asset sync (prebuild-bash-sync.mjs or sync-assets.mjs).

Workaround: none — blocks task-sync update entirely.


Bug 3: Checksum mismatch on task-sync flags untouched files as user-modified

After installing v0.3.0-pre via CLI v1.2.1, then running install / update via CLI v1.3.4, all task-sync files appear as user-modified even though the user has not edited any of them:

! skipped (user-modified): docs/bitrix-task-sync.md
! skipped (user-modified): .githooks/commit-msg
... (all 16 files)

verify confirms:

task-sync (0.3.0-pre)
  X modified: docs\bitrix-task-reference.md
  X modified: docs\bitrix-task-sync.md
  ... (all 16 files)

Likely cause: checksum algorithm change between v1.2.1 and v1.3.4, or line-ending normalization (CRLF vs LF on Windows clone of repo).

Impact: install and update both skip files defensively → users stuck on old version.


Bug 4: bx, bx-calendar, bx-crm — "No install handler"

Installing bx...
  ! No install handler for feature: bx
Installing bx-calendar...
  ! No install handler for feature: bx-calendar
Installing bx-crm...
  ! No install handler for feature: bx-crm

Features are listed by bitrix-skills list and have feature.json + assets in source, but installation silently fails.

Question: Are these intentionally gated behind --key (paid tier)? If so:

  • CLI should report requires license key (--key) instead of No install handler
  • list should mark them with a paid-tier indicator

If unintentional → install handlers for these 3 features are missing in src/features/<name>/install.ts.


Reproduction

# Fresh Windows machine, Node 20+ installed
cd D:\test-project
npx -y @synity/bitrix-skills install
# Observe: bx/bx-calendar/bx-crm fail with No install handler

# After install of v1.2.1 in another folder, then:
npx -y @synity/bitrix-skills update
# Observe: bx-task updated but verify reports all 19 files missing
# Observe: task-sync update fails on missing SKILL.md

Suggested fixes

  1. Bug 1: normalize manifest paths in verify — use path.resolve() + case-insensitive comparison on Windows
  2. Bug 2: include src/features/task-sync/assets/skill/SKILL.md in published tarball (check files field in package.json and .npmignore)
  3. Bug 3: add binary or fixed line-ending mode to checksum calculation; provide --force flag on update/install to override user-modified guard
  4. Bug 4: clarify intent — either implement handlers or surface a requires license key error

Severity

  • Blocking: Bug 2 + Bug 3 → cannot update task-sync at all on Windows after upgrade path from older CLI
  • Cosmetic but confusing: Bug 1 (verify always fails)
  • UX: Bug 4 (silent fail, unclear messaging)

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