Repository navigation
build(repo): add git hooks and content scan, fix release npm version - #232
Merged
Jordan Harband (ljharb) merged 4 commits intoNov 5, 2026
Merged
Jordan Harband (ljharb) merged 4 commits into
Jordan Harband (ljharb) merged 4 commits into
Conversation
Jordan Harband (ljharb)
force-pushed
the
claude/remove-ghcr-fleet-pack-8fae7b
branch
from
November 5, 2026 18:38
4a54804 to
b853f0f
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit b853f0f. Configure here.
Jordan Harband (ljharb)
requested review from
Bret Comnes (bcomnes),
John-David Dalton (jdalton) and
Joseph Werle (jwerle)
November 5, 2026 19:03
Node 26.12.1 bundles npm 11.20.0, and `devEngines` requires npm >=12.2.0 with `onFail: error`, so `npm publish` and `npm view` in the checkout fail with EBADDEVENGINES. The publish job now installs npm 12.2.0, and the release job runs `npm view` outside the checkout.
None of these 33 packages is imported or run by any script, test, config, or workflow. Removing them also leaves the brace-expansion and minimatch patches unused, so pnpm would reject them; drop those too.
`pnpm install` points `core.hooksPath` at `.git-hooks/`: - pre-commit scans the staged copy of each file for secrets, personal paths, and private repository names, and fails when a blob cannot be read. - commit-msg requires a Conventional Commit subject and rejects AI attribution lines. - pre-push runs `pnpm run repo:type`. `pnpm run check` now also runs the manifest version match and `pnpm run repo:scan`, and CI runs `pnpm run check` so the scan gates pull requests.
Jordan Harband (ljharb)
force-pushed
the
claude/remove-ghcr-fleet-pack-8fae7b
branch
from
November 5, 2026 21:05
4bbd523 to
6969de5
Compare
John-David Dalton (jdalton)
pushed a commit
to SocketDev/sauce
that referenced
this pull request
Nov 5, 2026
* chore(sauce): regenerate agents readme and fix formatting Run pnpm run generate to refresh the stale agents/README.md, and run oxfmt on three files that were unformatted on main. * build: drop the fleet pack and own the repo tooling Match SocketDev/socket-mcp#232: sauce no longer hydrates the GHCR fleet pack and keeps no fleet code. The repo owns small scripts for each job, and CI uses SHA-pinned upstream actions. - test, cover, fuzz harnesses, structural: plain vitest through .config/repo/vitest.config.mts. - format and lint: oxfmt and oxlint with root .oxfmtrc.json and .oxlintrc.json. - type: tsc on tsconfig.json and .config/repo/tsconfig.release-kit.json. - check: scripts/repo/check.mts runs format, lint, type, check-paths, the scripts/repo/check/*.mts gates, generate:check, and a content scan. - prepare: scripts/repo/install-git-hooks.mts sets core.hooksPath. - git hooks: commit-msg checks Conventional Commits and AI attribution, pre-commit scans staged files, pre-push runs the type check. - CI: actions/checkout and actions/setup-node pinned by SHA, pnpm 12.14.0 from npm, and the no-telemetry env in every workflow. Delete .github/actions and the workflows that needed fleet scripts. From socket-mcp: scripts/repo/util/{main,commit-message,scan}.mts, scripts/repo/hooks/*.mts, .git-hooks/*, .oxfmtrc.json, CLAUDE.md, .gitattributes, test/repo/unit/repo-scan.test.mts, and the ci-gates.yml shape. The scan drops the private-repo-name rule, because sauce names that repository in its plugin installer and release-kit browser profile, and the shipped-content check governs that name. The scan also skips tracked directory symlinks, and pre-commit skips staged gitlinks, which have no blob to read. repo-scan.test.mts and commit-message.test.mts cover the scan, the hooks, and both differences. Delete the GHCR download, verification and hydration code (scripts/repo/bootstrap), its .gitignore block, and its setup steps in .claude/settings.json. Delete the fleet trees (scripts/fleet, .claude/hooks/fleet, .claude/skills/fleet, .config/fleet, test/fleet, the fleet git-hook chain, .husky), the fleet member configs under .config and .config/repo, and the scripts/repo entry points that only fleet tooling ran. Move the few helpers sauce code used next to their one consumer. Drop the devDependencies, catalog pins, soak exclusions, and patches that only that code needed, and rewrite AGENTS.md, .gitignore and the remaining fleet comments to describe this repository. * fix(test): make lock-step and bootstrap tests pass on windows check-lock-step-refs prints repo-relative paths with `/` on every platform. The bootstrap integration test maps temp-repo reads onto the fake scenario root by relative path, so its path.join keys match on Windows. Both failed on main's Windows job before this change. oxlint also ignores **/plugin-patches/**, so `pnpm run fix` cannot rewrite those byte copies of upstream sources. * fix(test): match the workflows dir by segment in the bootstrap fixture The fake listDir seam compared the path suffix with `/`, so on Windows it never saw .github\workflows and the trusted-publisher step planned as if no workflow existed.
John-David Dalton (jdalton)
approved these changes
Nov 5, 2026
Jordan Harband (ljharb)
deleted the
claude/remove-ghcr-fleet-pack-8fae7b
branch
November 5, 2026 21:22
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.

Follow-up to #231, which removed the fleet pack. This PR adds four changes main doesn't have yet. Each commit can be reviewed on its own.
Changes
1. Fix the npm version in the release workflows (
fix(ci))devEnginesrequires npm>=12.2.0withonFail: error. Node 26.12.1 bundles npm 11.20.0, which errors withEBADDEVENGINESwhen run in the checkout. I reproduced that error withnpm viewandnpm pack.npm publishmakes the same check, so:publish-npm.ymlwould fail at its final step. It now installsnpm@12.2.0next to pnpm.release-github.ymlwould fail atnpm view. It now runsnpm viewoutside the checkout.2. Git hooks and a tracked-file content scan (
feat(repo))pnpm installpointscore.hooksPathat.git-hooks/. Thepreparescript skips this in CI.pre-commitscans the staged copy of each file for secrets, personal home paths and private repository names. It fails if it can't read a staged file.commit-msgrequires a Conventional Commit subject and rejects AI attribution lines.pre-pushrunspnpm run repo:type.pnpm run checknow also runs the manifest version check andpnpm run repo:scan. CI's check job runspnpm run checkinstead ofpnpm run repo:check, so the scan gates pull requests.test/repo/unit/repo-scan.test.mtscovers the scanner and the pre-commit hook, including a secret that is staged and then edited or deleted on disk.3. Drop unused dev dependencies (
build(deps))This removes 33 dev dependencies that no script, test, config or workflow uses. Removing them leaves the
brace-expansionandminimatchpatches unused, and pnpm rejects unused patches, so those are removed too.4. Update stale config comments (
chore(repo)).editorconfigand.npmrchad comments pointing at deleted fleet files and generators. Only comments change; the settings are identical.Testing
On a fresh copy of the branch with Node 26.12.1 and pnpm 12.14.0:
pnpm install --frozen-lockfilepassed and setcore.hooksPath.pnpm run checkpassed, including the scan of 173 tracked files.pnpm testpassed: 60 files, 537 tests.ubuntu-26.04runner-label warning that main also has.