chore: move manager, sdk and e2e in as workspaces - #3
Open
CptSchnitz wants to merge 1 commit into
Open
Conversation
Imports the three frozen source repositories as pnpm workspaces: - apps/jobnik-manager (jobnik-manager@e22e59c) - packages/jobnik-sdk (jobnik-sdk@de436ab) - e2e (jobnik-e2e@11392f7) Each workspace keeps its original package name, dependency versions and scripts. Per-repo lockfiles, git hooks, commit tooling and CI workflows are dropped in favor of the root's (one repo, one install, one hook setup); the service-catalog descriptor and each release-please config are dropped per spec (catalog descriptors aren't carried over; release config is ticket 08's job). The e2e suite's SDK dependency now resolves through the workspace (`workspace:*`) instead of a published version a full major behind what the SDK ships; its vitest script is renamed test -> e2e so it runs as its own turbo task rather than under the shared `test` task. turbo.json: lint, type-check and test now depend on the package's own build (not just upstream builds), and build's inputs/outputs now cover the manager's Prisma schema and generated client. The manager's build generates that client into the source tree via a pre-script; without this wiring, a cached build restores dist/ while the generated client used by lint/type-check/test is silently missing. Fixes required to get the moved code green under one shared lockfile (none change any declared dependency range other than as noted): - sdk: drop a stray empty generic (`IWorker<>`), an invalid-TS leftover that a newer, deduped TypeScript now rejects. - sdk: declare openapi-types/openapi-typescript-helpers directly; they were phantom dependencies resolved only via npm's flat hoisting. - sdk: pin undici to 7.19.1 (pnpm override) to match the original lockfile's resolution; a fresh resolution of the sdk's own `^7.19.1` range picked a much newer undici whose types no longer structurally match the undici-types version @types/node bundles. - manager: add @types/express-serve-static-core directly; needed for serverBuilder.ts's own `declare module` augmentation to resolve under pnpm's stricter, non-hoisted resolution. - sdk: drop a redundant explicit `project` eslint parserOption that conflicts with the shared config's own `projectService` under the now-resolved typescript-eslint. - sdk: three real lint findings surfaced by that config fix, fixed without changing behavior (see wrapper.ts, consumer.ts, errors/utils.ts). - root: approve the native postinstall scripts (prisma, esbuild, etc.) pnpm 10 blocks by default, so a clean install actually works. Verified end to end through the single root entry point: build, lint, lint:openapi, format, type-check and test all pass, including the manager's real Postgres-backed integration tests via its own docker-compose.yaml (left in its workspace, none added at the repo root, so the container tool's upward search still finds it). Known follow-up left for ticket 06 (noted there): the e2e suite's own tests are stale against the current SDK contract (status literals the API no longer accepts for those endpoints) — exactly the staleness this move surfaces rather than papers over. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CptSchnitz
marked this pull request as ready for review
August 23, 2026 11:24
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.
Imports the three frozen source repositories as pnpm workspaces:
Each workspace keeps its original package name, dependency versions and
scripts. Per-repo lockfiles, git hooks, commit tooling and CI workflows
are dropped in favor of the root's (one repo, one install, one hook
setup); the service-catalog descriptor and each release-please config
are dropped per spec (catalog descriptors aren't carried over; release
config is ticket 08's job).
The e2e suite's SDK dependency now resolves through the workspace
(
workspace:*) instead of a published version a full major behindwhat the SDK ships; its vitest script is renamed test -> e2e so it
runs as its own turbo task rather than under the shared
testtask.turbo.json: lint, type-check and test now depend on the package's own
build (not just upstream builds), and build's inputs/outputs now cover
the manager's Prisma schema and generated client. The manager's build
generates that client into the source tree via a pre-script; without
this wiring, a cached build restores dist/ while the generated client
used by lint/type-check/test is silently missing.
Fixes required to get the moved code green under one shared lockfile
(none change any declared dependency range other than as noted):
IWorker<>), an invalid-TS leftoverthat a newer, deduped TypeScript now rejects.
were phantom dependencies resolved only via npm's flat hoisting.
lockfile's resolution; a fresh resolution of the sdk's own
^7.19.1range picked a much newer undici whose types no longer structurally
match the undici-types version @types/node bundles.
serverBuilder.ts's own
declare moduleaugmentation to resolveunder pnpm's stricter, non-hoisted resolution.
projecteslint parserOption thatconflicts with the shared config's own
projectServiceunder thenow-resolved typescript-eslint.
without changing behavior (see wrapper.ts, consumer.ts, errors/utils.ts).
pnpm 10 blocks by default, so a clean install actually works.
Verified end to end through the single root entry point: build, lint,
lint:openapi, format, type-check and test all pass, including the
manager's real Postgres-backed integration tests via its own
docker-compose.yaml (left in its workspace, none added at the repo
root, so the container tool's upward search still finds it).
Known follow-up left for ticket 06 (noted there): the e2e suite's own
tests are stale against the current SDK contract (status literals the
API no longer accepts for those endpoints) — exactly the staleness
this move surfaces rather than papers over.
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Stack created with GitHub Stacks CLI • Give Feedback 💬