Skip to content

build: run on @cosyte/process and take the dev-toolchain moves - #101

Merged
NSchatz merged 1 commit into
mainfrom
build/adopt-process
Nov 8, 2026
Merged

NSchatz merged 1 commit into
mainfrom
build/adopt-process

Conversation

@NSchatz

@NSchatz NSchatz commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

We move cli onto the shared @cosyte/process and take the dev-toolchain updates the other libraries took (EN10). This supersedes #76.

Process

  • build, typecheck, lint, lint:fix, format, format:check, test, test:watch and test:coverage are now exactly cosyte-process <verb>. check:process runs cosyte-process check and is added to the documents job in ci.yml.
  • cosyte-process.config.json keeps the old format coverage (examples/**/*.{ts,js,json,md} on top of the baseline). Lint uses the baseline globs, which equal the old ones.
  • Removed devDependencies: tsup, eslint, prettier, @vitest/coverage-v8, typescript (nothing imports the compiler API) and @cosyte/test-utils (declared but never imported: its runners are parser conformance and parser PHI-leak checks, and cli parses nothing itself). vitest stays, pinned to 5.1.0, because the tests import it.
  • typecheck:examples and lint:examples run the tsc and eslint that process pins, through scripts/process-tool.mjs (from ccda and x12).
  • pack:docs is cosyte-process pack-docs; scripts/build-docs-artifacts.sh is deleted. Both archives have the same members as before.
  • version keeps scripts/sync-version.mjs (it writes src/core/version.ts and the version in docs-content/installation.md, which process's sync-version does not) and ends with cosyte-process format.
  • esbuild override moves to esbuild@>=0.27.3 <0.28.2 -> 0.28.2, matching config's drift manifest.

Updates

Package From To
tsup (via process) 8.5.1 9.0.0
vitest, @vitest/coverage-v8 4.1.12 5.1.0
eslint (via process) 10.5.0 10.14.0
prettier (via process) 3.8.3 3.9.10
fast-check 3.23.2 4.10.2
vite 7.3.7 8.3.6
@arethetypeswrong/cli 0.18.4 0.18.5
simple-git-hooks 2.13.0 2.14.0
@cosyte/process (new) ^0.1.7
@cosyte/eslint-config, tsup-config, vitest-config, script-utils ^0.1.2, ^0.1.2, ^0.1.2, ^0.1.7 ^0.1.4, ^0.1.3, ^0.1.3, ^0.1.8
actions/setup-node 6.4.0 7.1.0 (#76; no registry-url here, so the npm token change does not apply)

Held: @types/node stays on 22. .github/dependabot.yml now ignores its majors, and ignores vitest, which moves only when process does.

Workflows

  • Every cosyte/.github caller moves from workflows-2026-11-08-c0db8d8e5927 to workflows-2026-11-08-810a8affe9de. The only change between them is ci: default expect-unpublished-deps to empty now that @cosyte/fhir is on npm .github#112, which empties the expect-unpublished-deps default. Job ids and the other inputs are unchanged, so the required contexts are the same.
  • The ci.yml comment that called that default stale now says it is empty upstream, and what it used to be.

The MCP SDK and the install matrix

tsup 9 keeps the SDK behind the launcher: in all four built bins the SDK appears only in src/mcp/launch.ts's dynamic import(). test/absent-mcp-sdk.test.ts passes, and pnpm smoke runs both bins with the SDK hidden (exit 69, value-free line). scripts/release-install-gate.mjs passes. A clean-room install of the packed tarball with npm install, npm install --omit=optional, npm install --legacy-peer-deps and pnpm add each exits 0; cosyte --version and HL7 parse work in all four, FHIR parse and convert --to fhir work in all but --omit=optional, where they and cosyte mcp exit 69, as in 0.1.6.

Published files

The file list is the same apart from the renamed declaration chunk (io-*.d.ts). Every .mjs, .cjs and source map is byte-identical to main. The .d.ts files change: type-only exports sit in their own export type {}, and mcp.d.ts imports CliCode and RunDeps from ./index.js instead of the chunk. A patch changeset records it. pnpm attw passes.

Gate

Run locally on Node 26.10 with pnpm 10.34.5, from a frozen install: typecheck, lint, format:check, phi-scan, test (665 passed, as on main), test:coverage (same totals as main), build, attw, smoke, typecheck:examples, lint:examples, examples, phi-scan:examples, fuzz, check:no-emdash, check:no-internal-refs, check:readme, check:claude-card, check:catalog, check:process. The version script was run in a scratch worktree: it wrote 0.1.7 to package.json, src/core/version.ts, docs-content/installation.md and CHANGELOG.md and left a formatted tree.

https://claude.ai/code/session_01MXLcW95gf97vs9RBU1YsXf

Script bodies delegate to cosyte-process 0.1.7, which owns tsup 9,
vitest 5, eslint 10.14, prettier 3.9 and typescript 5.9.3. Also
fast-check 4, vite 8, attw 0.18.5, setup-node 7.1.0 (supersedes #76),
and the shared workflow callers move to workflows-2026-11-08-810a8affe9de,
whose empty expect-unpublished-deps default the ci.yml comment now
describes.

Claude-Session: https://claude.ai/code/session_01MXLcW95gf97vs9RBU1YsXf
@NSchatz
NSchatz merged commit a515187 into main Nov 8, 2026
13 checks passed
@NSchatz
NSchatz deleted the build/adopt-process branch November 8, 2026 17:49
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