Skip to content

chore(deps): upgrade safe dependencies and stabilize flaky CI tests - #79

Merged
jamesaphoenix merged 1 commit into
mainfrom
chore/deps-and-ci-stability
Aug 14, 2026
Merged

chore(deps): upgrade safe dependencies and stabilize flaky CI tests#79
jamesaphoenix merged 1 commit into
mainfrom
chore/deps-and-ci-stability

Conversation

@jamesaphoenix

Copy link
Copy Markdown
Owner

Closes #75, closes #74, closes #73, closes #72, closes #69, closes #60

CI fix

ralph-watchdog-script.test.ts was failing on main. Not flake in the usual sense — an incoherent timeout budget. The tests budget up to 31s of internal waiting (8s lock wait + 15s exit wait + 8s release wait) but inherited vitest's global testTimeout: 10000. Vitest killed each test long before its own guards could fire, so they passed only when everything happened fast and timed out under CI load.

Both files that race real subprocesses now declare an explicit per-test timeout above their internal budget. This matches what the other process-spawning suites here (api-sync-http, doc-cli, ralph-context-bundle-e2e) already do — the watchdog file was the outlier. ralph-script.test.ts had the same latent gap (8.3s of waits against a 10s budget) and is fixed too.

Upgrades merged

PR Change
#69, #60 actions/setup-node v6→v7, actions/cache v5→v6
#75 @types/node 25→26
#74 jsdom 29→30
#73 @testing-library/jest-dom 6→7

Verified by the full suite: 5135 passing, 0 failures, plus clean typecheck, lint, and build of all five packages.

#72 resolved by removal, not bump

hono and @hono/node-server were declared by the dashboard but imported only from apps/dashboard/server/index.js — a compiled artifact dated February 2026, superseded by server/index.ts (which uses node:http) and left checked in along with its .d.ts and .map files. Nothing referenced it; bun run server runs the .ts.

Deleted the four stale artifacts and dropped both Hono packages. This also settles CLAUDE.md Rule 10 ("Hono framework is NOT allowed"). Hono remains present transitively via @modelcontextprotocol/sdk; no tx code uses it.

release.yml trigger tightened

v* matched scratch tags, which started the full four-target binary matrix and failed noisily when such a tag was deleted. Now restricted to plain semver, which is what every real release here has used.

Deferred, with evidence

#70 — Effect 3.19 → 3.22: regresses worker orchestration. Bisected by reverting only the Effect versions:

Effect test/integration/run-worker.test.ts
3.19.16 10/10 pass, 11.4s
3.22.1 9/10, one hang, 215.6s

Reproduced in isolation. A ~19x slowdown and a hang in orchestrator.start({ workerPoolSize: 5 }) is not something to merge on a routine bump; it likely deserves an upstream report.

#71 — fumadocs-mdx 14 → 15: dependency cascade. Requires fumadocs-core >=16.7, whose stylesheet emits an -inset-s-4 utility that Tailwind rejects even at 4.3.3. Docs build fails on Next 16.1.6 and 16.3.1 alike. Not a version gap I could close from here.

Worth noting separately: fumadocs-ui is declared as ^16.5.0, so a fresh bun install floats it to 16.14.x and breaks the docs build today, independent of this PR. The committed lockfile is currently what keeps it working. That's a latent trap worth pinning.

#66 — TypeScript 5.9 → 7.0. The native port; a major with real behavioural surface across tsc -b project references and the Effect-heavy types here. Deserves its own focused pass, not a drive-by merge.

CI was red on main from a timeout in ralph-watchdog-script.test.ts, and
nine Dependabot PRs were open.

CI fix. The watchdog tests budget up to 31s of internal waiting
(8s lock + 15s exit + 8s release) but inherited vitest's global 10s
testTimeout, so vitest killed each test long before its own guards could
run. They passed only when everything happened fast and timed out under
CI load. Both files that race real subprocesses now declare an explicit
per-test timeout above their internal budget, matching what the other
process-spawning suites here already do.

Dependency upgrades, all verified by the full suite (5135 passing):
- actions/setup-node v6 -> v7, actions/cache v5 -> v6 (#69, #60)
- @types/node 25 -> 26 (#75)
- jsdom 29 -> 30, @testing-library/jest-dom 6 -> 7 (#74, #73)

Hono removal instead of the bump (#72). hono and @hono/node-server were
declared by the dashboard but imported only from server/index.js, a
compiled artifact from February that had been superseded by server/index.ts
and left checked in. The stale .js/.d.ts/.map files are deleted and both
Hono packages dropped, which also settles CLAUDE.md Rule 10. Hono remains
present transitively via @modelcontextprotocol/sdk; nothing in tx uses it.

release.yml only triggers on plain semver tags now. 'v*' also matched
scratch tags, which started the full four-target binary matrix and failed
noisily when such a tag was removed.

Deferred, with evidence, rather than merged:
- Effect 3.19 -> 3.22 (#70) regresses worker orchestration badly.
  test/integration/run-worker.test.ts: 10/10 in 11.4s on 3.19.16, versus
  9/10 with a hang in 215.6s on 3.22.1. Reproduced in isolation and
  bisected by reverting only the Effect versions.
- fumadocs-mdx 14 -> 15 (#71) cascades: it needs fumadocs-core >=16.7,
  whose stylesheet emits an -inset-s-4 utility that Tailwind rejects even
  at 4.3.3, so the docs build fails regardless of the Next version.
- typescript 5.9 -> 7.0 (#66) is the native port and warrants its own pass.
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