Skip to content

Remove all git submodules; develop the forks as standalone repos - #1010

Merged
RhysSullivan merged 2 commits into
mainfrom
claude/vibrant-shockley-949cd3
Jun 13, 2026
Merged

Remove all git submodules; develop the forks as standalone repos#1010
RhysSullivan merged 2 commits into
mainfrom
claude/vibrant-shockley-949cd3

Conversation

@RhysSullivan

Copy link
Copy Markdown
Collaborator

Why

The vendor/emulate and vendor/mcporter submodules created persistent friction for anyone in a fresh clone or worktree: they are empty until git submodule update --init, they are a pnpm + node>=24 toolchain unlike this repo's bun, editing them means a stale-dist rebuild step, and shipping a change meant publish-then-bump-pointer drift — work routinely piled up uncommitted in the submodule tree while deploys were built straight from it. Nothing in the repo imports from vendor/ at runtime; the forks are already consumed as the published @executor-js/emulate and @executor-js/mcporter npm packages. So the submodules earned their keep only as a dev surface, and a poor one.

integrationsdotsh is a downstream product that consumes this repo's published SDK — it was never imported here at all (a phantom .gitmodules entry with no gitlink).

What

  • Remove the vendor/emulate, vendor/mcporter, and integrationsdotsh submodules. .gitmodules is deleted — the repo tracks zero submodules.
  • scripts/bootstrap.ts: drop the dead --forks submodule-init path.
  • Rewrite the guidance to point at the standalone fork repos and make publish/deploy the normal flow: the emulate skill gains a "Changing or deploying an emulator" section, with matching notes in AGENTS.md and RUNNING.md. Fix the stale vendor/ mentions in README.md and the e2e MCP-surface comment; delete vendor/README.md.

Verification

  • bun run format:check and bun run lint — green.
  • Nothing imports vendor/ at runtime, so a fresh clone or worktree no longer needs any submodule init or build step. No runtime code changed.

The emulate and mcporter forks are consumed only as published npm packages
(@executor-js/emulate, @executor-js/mcporter) — nothing imports vendor/ at
runtime, and the submodules created persistent friction: empty in every
worktree, a pnpm/node>=24 toolchain unlike executor's bun, stale-dist
rebuilds, and publish/pointer drift.

Remove vendor/emulate and vendor/mcporter and point the guidance at the
standalone fork repos: agents develop emulate on its own main with full
publish/deploy autonomy, and this repo just bumps the npm dependency.

- Remove vendor/emulate, vendor/mcporter, vendor/README.md; .gitmodules keeps
  only integrationsdotsh
- bootstrap.ts: drop the dead --forks submodule-init path
- Rewrite the emulate skill (new "Changing or deploying an emulator" section),
  AGENTS.md, RUNNING.md, README.md, and the e2e mcp surface comment
…dules now

integrationsdotsh is a downstream product that consumes executor's published
SDK, not something executor imports. There was no gitlink — just a phantom
.gitmodules entry plus a few "ignore this dir" guards. Develop it in its own
repo (github.com/RhysSullivan/integrationsdotsh) like the forks.

- Remove the integrationsdotsh stanza from .gitmodules (its last entry, so the
  file is deleted — executor has no submodules now)
- Drop the now-stale integrationsdotsh ignores in .oxlintrc.jsonc, .oxfmtrc.json,
  and scripts/migrate-schema-class.ts
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud fca6a9c Jun 13 2026, 08:53 PM

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing fca6a9c Commit Preview URL

Branch Preview URL
Jun 13 2026, 08:53 PM

@greptile-apps

greptile-apps Bot commented Jun 13, 2026

Copy link
Copy Markdown

Greptile Summary

This PR removes the three git submodules (vendor/emulate, vendor/mcporter, integrationsdotsh) and rewrites all documentation to reflect that the two fork packages are consumed purely as published npm packages from their own standalone repos. No runtime code changes — only documentation, configuration cleanup, and the removal of the --forks bootstrap path.

  • Deletes .gitmodules and vendor/README.md, removes submodule gitlinks, and strips integrationsdotsh from formatter/linter ignore lists and the migrate-schema script's directory skip set.
  • scripts/bootstrap.ts drops the --forks branch that ran git submodule update; AGENTS.md, RUNNING.md, README.md, and e2e/src/surfaces/mcp.ts are updated to point at the standalone repos and npm packages.
  • The emulate skill gains a new "Changing or deploying an emulator" section with the full publish/deploy loop and a shared-infrastructure warning.

Confidence Score: 5/5

Safe to merge — no runtime code was changed; all modifications are documentation, configuration cleanup, and removal of dead bootstrap logic.

Every changed file is either documentation, a formatter/linter config, or a dev-only script. The submodule removal is complete and consistent: .gitmodules deleted, gitlinks removed, vendor/README.md deleted, all prose updated to point at the standalone repos and npm packages. The --forks bootstrap path is cleanly excised with no dangling references. Nothing in the runtime import graph was touched.

No files require special attention.

Important Files Changed

Filename Overview
.gitmodules Deleted entirely — all three submodule entries removed, leaving the repo with zero tracked submodules.
scripts/bootstrap.ts Removed the --forks argv branch that ran git submodule update; comment updated. Remaining logic (bun install + playwright install) is unchanged.
.claude/skills/emulate/SKILL.md Adds a new "Changing or deploying an emulator" section with a 4-step publish/deploy loop and a shared-infrastructure warning; removes the stale vendor/ references.
scripts/migrate-schema-class.ts Removes integrationsdotsh from IGNORE_DIRS; correct since that directory was never actually tracked.
AGENTS.md Adds a paragraph confirming emulators are not vendored and explicitly discouraging re-introduction of a vendor/ submodule.
RUNNING.md Replaces the vendor/ submodule paragraph with accurate standalone-repo guidance pointing at the published npm packages.
e2e/src/surfaces/mcp.ts Single-comment update replacing 'develop it in the vendor/mcporter submodule' with the standalone repo URL; no logic changes.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Fresh clone or worktree] --> B[bun run bootstrap]
    B --> C[bun install + prepare builds]
    B --> D[playwright install chromium]
    C --> E[Ready to develop]
    D --> E

    subgraph after [After - Standalone Repos]
        M[github.com/UsefulSoftwareCo/emulate] -->|publish version| J[npm: @executor-js/emulate]
        N[github.com/UsefulSoftwareCo/mcporter] -->|publish version| L[npm: @executor-js/mcporter]
        J -->|bump dep| K[executor repo]
        L -->|bump dep| K
    end

    subgraph before [Before - Submodules]
        F[vendor/emulate submodule] -->|submodule update + build| G[local dist]
        H[vendor/mcporter submodule] -->|submodule update + build| G
    end
Loading

Reviews (1): Last reviewed commit: "Drop the integrationsdotsh submodule too..." | Re-trigger Greptile

@github-actions

github-actions Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Torn down — the PR is closed.

@RhysSullivan
RhysSullivan merged commit ce39ffc into main Jun 13, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant