This document provides detailed information about dependency update procedures, external tool checksums, and troubleshooting for the socket-cli updating skill.
- Update Targets
- npm Dependency Updates
- External Tool Checksums
- Monorepo Structure
- Weekly Update Workflow
- Validation
- Troubleshooting
Updated via pnpm run update which runs scripts/update.mjs:
- taze pass:
pnpm exec taze -r -w(recursive, write mode across all packages) - Socket packages pass:
pnpm update @socketsecurity/* @socketregistry/* @socketbin/* --latest -r(bypasses taze maturity period) - Install:
pnpm installto update lock file
Updated via the updating-checksums skill which runs packages/cli/scripts/sync-checksums.mjs:
- Syncs SHA-256 checksums from GitHub releases to
packages/cli/bundle-tools.json - Only processes tools with
type: "github-release"
# Phase 1: Update all dependencies via taze
pnpm exec taze -r -w
# Phase 2: Force-update Socket scoped packages (bypass maturity period)
pnpm update @socketsecurity/* @socketregistry/* @socketbin/* --latest -r
# Phase 3: Install
pnpm installSocket packages are force-updated to latest regardless of taze maturity:
@socketsecurity/*- Core Socket libraries@socketregistry/*- Socket registry packages@socketbin/*- Socket binary packages
After update, these files may be modified:
package.json(root)packages/cli/package.jsonpackages/build-infra/package.jsonpackages/package-builder/package.jsonpnpm-lock.yaml
Location: packages/cli/bundle-tools.json
Tool types:
| Type | Tools | Checksum Source |
|---|---|---|
github-release |
opengrep, python, socket-patch, sfw, trivy, trufflehog | SHA-256 from releases |
npm |
@coana-tech/cli, @cyclonedx/cdxgen, synp | SRI integrity hashes |
pypi |
socketsecurity | SRI integrity hashes |
github-source |
socket-basics | No checksums |
JSON structure per tool:
{
"description": "Tool description",
"type": "github-release",
"package": "tool-name",
"version": "1.0.0",
"repository": "owner/repo",
"githubRelease": "v1.0.0",
"checksums": {
"filename-linux-amd64.tar.gz": "sha256hexstring",
"filename-darwin-arm64.tar.gz": "sha256hexstring"
}
}Location: packages/cli/scripts/sync-checksums.mjs
Process:
- Reads
bundle-tools.jsonfor GitHub release tools - For each tool, tries to download
checksums.txtfrom the release - If no checksums.txt, downloads each asset and computes SHA-256
- Updates embedded checksums in
bundle-tools.json
Options:
--tool=<name>- Sync specific tool only--force- Force update even if unchanged--dry-run- Preview changes without writing
- After manually updating tool versions in bundle-tools.json
- After new GitHub releases are published for any tool
- As part of the full update cycle (run after npm updates)
socket-cli/
├── packages/
│ ├── cli/ # Main Socket CLI application
│ ├── build-infra/ # Build infrastructure
│ └── package-builder/ # Package builder utility
├── scripts/
│ └── update.mjs # Monorepo-aware dependency updater
└── pnpm-lock.yaml
The monorepo uses pnpm workspaces. Updates are recursive (-r flag) to cover all packages.
Location: .github/workflows/weekly-update.yml
Schedule: Monday 9 AM UTC
- check-updates - Runs
pnpm outdatedto detect available updates - apply-updates - Creates branch
weekly-update-YYYYMMDD, runs Claude Code with/updatingskill, creates draft PR - notify - Reports status
When CI=true or GITHUB_ACTIONS is set:
- Skip build/test validation (CI jobs validate separately)
- Create atomic commits for each logical update
- Workflow handles branch creation and PR
# Fix lint issues across all packages
pnpm run fix --all
# Run all checks (lint + type check)
pnpm run check --all
# Run tests
pnpm testValidation is skipped - CI pipeline runs builds and tests in separate jobs after the update PR is created.
Symptom: pnpm run update shows no changes when updates exist.
Cause: taze has a maturity period for new releases (typically 3 days).
Solution: Socket packages bypass taze maturity via direct pnpm update --latest. For other packages, wait for maturity period or manually update package.json.
Symptom: sync-checksums.mjs errors out.
Possible causes:
- GitHub API rate limiting: check with
gh api rate_limit --jq '.rate' - Release doesn't exist: verify with
gh release view <tag> --repo <owner/repo> - Network connectivity issues
Symptom: pnpm install fails after update due to resolution conflicts.
Solution:
rm pnpm-lock.yaml
pnpm installSymptom: taze phase succeeds but Socket package phase fails (or vice versa).
Solution:
- Check error messages for specific package failures
- Socket packages may have unpublished versions - verify with
npm view @socketsecurity/<pkg> versions - Commit successful updates, create separate issue for failures
Symptom: Automated PR can't be merged due to conflicts.
Solution:
- Check what changed on main since the update branch was created
- Rebase the update branch or re-run the workflow
- Manual resolution if conflicts are in lock file: regenerate with
pnpm install