Skip to content

chore(GAT-9016): remove the legacy Express service - #136

Open
calmacx wants to merge 1 commit into
feat/GAT-9016-server-shellfrom
chore/GAT-9016-remove-express
Open

calmacx wants to merge 1 commit into
feat/GAT-9016-server-shellfrom
chore/GAT-9016-remove-express

Conversation

@calmacx

@calmacx calmacx commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator

DRAFT — do not merge. This deletes the code that is currently serving production. It may only merge after the dev cutover, the production promotion, and the agreed production soak have all completed. Opened now so the work is ready, not because it is ready to land.

What

Deletes the legacy Express service — src/ (34 tracked files) and the orphaned root swagger.json — plus the eslint.config.js ignore entry that existed only to keep the retained tree out of lint. No behavioural change.

Why

src/ was kept deliberately as the rollback artefact for the production cutover. Once production has soaked on the React Router build, the tree is dead weight: it pollutes git grep, dependency audits and onboarding. swagger.json is the legacy OpenAPI document, superseded by the swagger-jsdoc spec served at /openapi.json.

Testing

Verified on a production build, not dev mode: npm run typecheck, npm run lint and npm run build all exit 0, build/openapi.json still carries 10 paths, and the suite is 62 passed across 10 files — identical to the run before the deletion, which is the bar the plan set rather than merely "green".

Proven unreferenced before deleting. git grep "src/" outside the tree itself returned four hits, every one prose or config and none a code path: the eslint ignore (removed here), a comment in env.example citing src/app.js for the MAX_BODY_MB value (reworded), and two notes in the regression fixtures recording when the Express baseline retires (renumbered PR12 → PR09). swagger.json had zero references anywhere in the repo. No workflow mentions src/ or jest, and jest is no longer a dependency.

Notes

  • Base is feat/GAT-9016-server-shell, the top of the migration stack, not dev. dev still runs Express today, so basing it there would show a deletion of the live service against a tree that has no replacement. Retarget to dev once the stack has landed.
  • tests/data/*.json are kept. Git reports them as R100/R096/R093 renames of src/utils/data/*, but they are live inputs to the Vitest suites — the originals were duplicates, not the same files.
  • Rollback after this merges is git checkout <this PR's parent sha> -- src, still trivial but no longer a one-command image swap on an existing tag.
  • Two things deliberately left out, both worth a decision before this leaves draft: src/utils/swarmer.py is a Python load-generation helper that was never part of the service and no one would notice vanishing until they needed it; and the regression pins (tests/regression/pins.json) are marked to retire when src/ goes, but retiring them is a separate call about what CI compares against, not part of a pure deletion.

🤖 Generated with Claude Code

@gh-actions-pipelines-app

Copy link
Copy Markdown

🎉 Great job! Your PR title follows the correct format. 🚀

@calmacx
calmacx added this pull request to stack #133 September 21, 2026 10:40
@calmacx
calmacx marked this pull request as ready for review September 21, 2026 10:41
@calmacx
calmacx force-pushed the chore/GAT-9016-remove-express branch from 3e9fb3b to c2eee13 Compare September 21, 2026 14:12
@calmacx
calmacx removed this pull request from stack #133 September 22, 2026 08:33
@calmacx
calmacx added this pull request to stack #139 September 22, 2026 09:17
@calmacx
calmacx force-pushed the chore/GAT-9016-remove-express branch from c2eee13 to 6e17f8e Compare September 22, 2026 09:24
Deletes src/ (34 tracked files) and the orphaned root swagger.json, the
legacy OpenAPI document superseded by the swagger-jsdoc spec now served
at /openapi.json. Pure deletion — no behavioural change.

src/ was kept deliberately through the dev cutover and the production
promotion as the rollback artefact. With production soaked on the React
Router build, it is dead weight that pollutes git grep, dependency
audits and onboarding.

Proven unreferenced before deleting. git grep for "src/" outside the
tree itself returned four hits, all prose or config and none of them a
code path: the eslint ignore entry (removed here), a comment in
env.example citing src/app.js for the MAX_BODY_MB value (reworded), and
two notes in the regression fixtures recording when the Express
baseline retires (renumbered PR12 -> PR09). swagger.json had zero
references anywhere. No workflow mentions src/ or jest, and jest is no
longer a dependency.

tests/data/*.json stay. Git reports them as R100/R096/R093 renames of
src/utils/data/*, but they are live inputs to the Vitest suites and the
originals were duplicates, not the same files.

Verified on a production build: typecheck, lint and build all exit 0,
and the suite is 62 passed across 10 files — identical to the run before
the deletion, not merely green.

Refs: upgrade-plans/ws1-pr09-remove-express.md
@calmacx
calmacx force-pushed the chore/GAT-9016-remove-express branch from 6e17f8e to 858a394 Compare September 22, 2026 09:28
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