Repository navigation
build: drop the fleet pack and own the repo tooling - #28
Merged
John-David Dalton (jdalton) merged 4 commits intoNov 5, 2026
Merged
Conversation
Run pnpm run generate to refresh the stale agents/README.md, and run oxfmt on three files that were unformatted on main.
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.
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 a46a0dd. Configure here.
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.
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.
Jordan Harband (ljharb)
requested review from
Bret Comnes (bcomnes),
John-David Dalton (jdalton) and
Joseph Werle (jwerle)
November 5, 2026 20:17
John-David Dalton (jdalton)
approved these changes
Nov 5, 2026
Collaborator
|
I'll follow up with another pass if needed and we can trade reviews Jordan Harband (@ljharb)! |
This was referenced Nov 5, 2026
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.

Summary
sauce stops hydrating the GHCR fleet pack and keeps no fleet code. It now owns small scripts for each job, the same way SocketDev/socket-mcp#232 does, and CI uses SHA-pinned upstream actions.
pnpm test,cover,test:fuzz-harnesses,test:structural.config/repo/vitest.config.mtsformat,format:check,lint,lint:fix,fixoxfmt/oxlintwith root.oxfmtrc.jsonand.oxlintrc.jsontypetscontsconfig.jsonand.config/repo/tsconfig.release-kit.jsoncheckscripts/repo/check/*.mtsgates,generate:check, and a content scanpreparescripts/repo/install-git-hooks.mtssetscore.hooksPath=.git-hookscommit-msg: Conventional Commits and no AI attribution.pre-commit: scans staged files.pre-push:pnpm run typeactions/checkoutandactions/setup-nodepinned by SHA, pnpm 12.14.0 from npm, the no-telemetry env in every workflowThe generators (
pnpm run generate/generate:check) work unchanged. They now format their output withoxfmtdirectly.What is removed
scripts/repo/bootstrap), its 5,500-line.gitignoreblock, and its setup steps in.claude/settings.json.scripts/fleet,.claude/hooks/fleet,.claude/skills/fleet,.config/fleet,test/fleet,.github/actions, the fleet git-hook chain, and.husky..configand.config/repo, and thescripts/repoentry points that only fleet tooling ran.ci: gates,ci: e2e,ci: publish claude marketplace.Differences from socket-mcp#232
These files come from socket-mcp unchanged:
scripts/repo/util/{main,commit-message}.mts,scripts/repo/hooks/commit-msg.mts,.git-hooks/*,CLAUDE.md, and.gitattributes. These are adapted:scripts/repo/util/scan.mtshas no private-repo-name rule. sauce names that repository in working code: the plugin installer's marketplace URL and the release-kit's shared Chrome profile path. The existingshipped-content-is-consumer-cleancheck already governs that name in shipped files.scan.mtsskips tracked directory symlinks. Without this,checkcrashes on.opencode/skills.pre-commitskips staged gitlinks, which have no blob to read.check.mtsuses a shell on Windows only forpnpmsteps.nodesteps run without a shell, so a Node path with a space still works..oxfmtrc.jsonalso ignores**/plugin-patches/**, because those files are byte copies of upstream sources.install-git-hooks.mtsis sauce's existing, tested installer..claude/settings.jsonkeeps sauce's publish-deny and force-push-ask permissions.test/repo/unit/repo-scan.test.mts(from socket-mcp) andcommit-message.test.mtscover the scan, the hooks, and these differences.Verification
On a clean clone with Node 26.10.0 and pnpm 12.12.0:
pnpm install --frozen-lockfilecore.hooksPathis.git-hookspnpm run checkpnpm testpnpm run test:fuzz-harnessespnpm run cover,build,generate:checkReal commits through the hooks rejected a non-conventional subject, an AI attribution trailer, and a staged AWS key. They accepted normal commits, staged deletions, and fixups.
test:e2eneeds agent CLIs and credentials, so I did not run it locally. This change does not touch it.Follow-ups
scan.mtsandpre-commit.mtshave the same symlink and gitlink cases. They don't matter there today, because socket-mcp tracks neither.Note
Medium Risk
Large dev/CI surface change (lint, test, hooks, check gates) with no production runtime path, but regressions would block merges and local workflows until fixed.
Overview
Removes the GHCR fleet pack and all cascaded scaffolding —
scripts/fleet, fleet hooks/skills,.config/fleet, wheelhouse member JSON/schema, fleet oxlint/markdownlint/esbuild configs, Husky, and the SessionStart/hook/statusline wiring in.claude/settings.json. Claude settings shrink to telemetry env knobs plus existing publish/force-push permissions.Replaces fleet runners with repo-local tooling patterned after socket-mcp:
pnpmscripts callscripts/repo/*for check, format, lint, type, hooks (core.hooksPath=.git-hooks), and generators; CI uses SHA-pinned checkout/setup-node. Vitest is rewritten —.config/repo/vitest.config.mtsdrops fleet lanes, coverage merge, andvitest.settings.mts; tests targettest/repo/**with optional fuzz viaTEST_FUZZ, inline coverage forrelease-kit/**, andrelease-kittypecheck now extends roottsconfig.jsonwith DOM lib.Deletes the
updating-xportskill, fleet output style, and per-repo socket-wheelhouse config that drove coverage/hooks/workflows — those behaviors must now live in the simplified configs and check script or are intentionally gone with the fleet workflows.Reviewed by Cursor Bugbot for commit a46a0dd. Configure here.