Skip to content

Commit 2ce6ee9

Browse files
vilmireclaude
andcommitted
ci: build terminal-mux-{core,control} before the typechecks that need them
Two typecheck steps fail in a clean checkout with TS2307 "Cannot find module": "Typecheck @adhdev/terminal-mux-cli" (@adhdev/terminal-mux-core, @adhdev/terminal-mux-control/{control-socket,storage}) and "Typecheck @adhdev/daemon-standalone" (@adhdev/terminal-mux-control/api). Cause is build ordering, not code: workspace imports resolve through each package's `types`/`exports` — its dist/, not its src/ — and neither terminal-mux-core nor terminal-mux-control was ever built in the test job. This is invisible outside CI. Locally, and to Refinery (which runs from the root worktree), dist/ already exists from earlier builds, so both typechecks pass. It reproduces only in a clean checkout. It also stayed hidden across two release attempts because an earlier test failure short-circuited the job before these steps ran; fixing that failure is what exposed this one. Build order follows the dependency graph: terminal-mux-core needs session-host-core (already built above), terminal-mux-control needs both. ghostty-vt-node is a terminal-mux-core dependency but needs no build step — it ships prebuilt binaries and is handled by the existing artifact-download step. Verified in an isolated clone with no root repo on the path: before, those two typechecks failed; after building the two packages, both pass. Every other test and typecheck step in the job was also run there and passes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UEd46KPgN8BctgE6RXyeNr
1 parent 4f0a1c4 commit 2ce6ee9

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,12 +169,28 @@ jobs:
169169
- name: Install dependencies
170170
run: npm ci
171171

172+
# Build order follows the @adhdev dependency graph, because the typecheck
173+
# steps below resolve workspace imports through each package's published
174+
# `types`/`exports` — i.e. through its dist/, not its src/. A package whose
175+
# dependency was never built fails with TS2307 "Cannot find module".
176+
#
177+
# terminal-mux-{core,control} are built here for exactly that reason:
178+
# without them "Typecheck @adhdev/terminal-mux-cli" and
179+
# "Typecheck @adhdev/daemon-standalone" both fail on TS2307. This is
180+
# invisible locally (and to Refinery, which runs from the root worktree)
181+
# because dist/ already exists there — it only reproduces in a clean
182+
# checkout, which is what CI is.
183+
#
184+
# Order: session-host-core → terminal-mux-core → terminal-mux-control
185+
# (mux-core needs session-host-core; mux-control needs both).
172186
- name: Build packages required for tests
173187
run: |
174188
npm run build -w packages/session-host-core
175189
npm run build -w packages/session-host-daemon
176190
npm run build -w packages/mesh-shared
177191
npm run build -w packages/daemon-core
192+
npm run build -w packages/terminal-mux-core
193+
npm run build -w packages/terminal-mux-control
178194
179195
- name: Test @adhdev/mesh-shared
180196
run: npm run test -w packages/mesh-shared

0 commit comments

Comments
 (0)