Skip to content

Fix conductor-migration CI regressions from PR #840 - #852

Merged
martin-henz merged 1 commit into
conductor-migrationfrom
fix/csg-normalize-list-datatype
Jul 27, 2026
Merged

Fix conductor-migration CI regressions from PR #840#852
martin-henz merged 1 commit into
conductor-migrationfrom
fix/csg-normalize-list-datatype

Conversation

@martin-henz

Copy link
Copy Markdown
Member

Summary

PR #840 introduced NormalizeListDataType in lib/modules-lib/src/conductor/methods.ts, which normalizes PAIR|EMPTY_LIST to LIST when inferring attachModuleMethod's argument/return types. This broke two things on conductor-migration:

  • CSG bundle tsc failure, which actually breaks yarn install itself (the bundle is built as part of the workspace link step). The CSG bundle's group/ungroup registrations used as unknown as [DataType.PAIR] workaround casts (added in Migrate CSG Module to Conductor #826) to compensate for the old inference behavior. With the new normalization, those casts are now actively wrong. Fix: drop the now-obsolete casts.
  • @typescript-eslint/utils version fragmentation. Migrate the curve and plotly modules #840's yarn.lock update caused this package to resolve to three different versions across the workspace (8.58.2 via @vitest/eslint-plugin, 8.62.1 via the typescript-eslint meta-package's own pinned dependency, and 8.63.0 via lint-plugin's direct dependency). This made @sourceacademy/lint-plugin's rule tests fail to typecheck (structurally incompatible RuleModule/RuleContext types pulled from different physical copies of the package), and was also responsible for two failing modules-buildtools doc-generation tests (repeat/rune bundle docs). Fix: pin @typescript-eslint/utils via resolutions to converge the whole family on a single version (8.65.0), matching the existing pattern already used for vitest/vite.

Verification

Manually ran the full check matrix locally (no CI runs on PRs into conductor-migration currently — see separate note), since this branch previously failed CI on the downstream conductor-migration → master PR (#680, run 30258399499):

  • yarn install succeeds (previously failed — CSG bundle build blocked it)
  • csg bundle: tsc + tests (25/25) pass
  • Csg tab: build + tsc + tests pass
  • lint-plugin: tsc + tests (54/54) pass (previously failed to typecheck)
  • modules-buildtools: full test suite (148/148) passes, including the two previously-failing doc-generation tests
  • yarn constraints clean
  • yarn lint:all — no new errors/warnings vs. conductor-migration HEAD before this fix
  • yarn buildtools manifest succeeds

🤖 Generated with Claude Code

PR #840 added NormalizeListDataType to methods.ts, which normalizes
PAIR|EMPTY_LIST to LIST when inferring attachModuleMethod's argument/
return types. This made the CSG bundle's `as unknown as [DataType.PAIR]`
workaround casts (added in #826, back when the inferred type still
needed restating) incorrect, breaking tsc for the csg bundle - which in
turn breaks `yarn install` itself, since the bundle is built as part of
the workspace link step.

It also caused @typescript-eslint/utils to resolve to three different
versions across the workspace (8.58.2 via @vitest/eslint-plugin, 8.62.1
via the typescript-eslint meta-package's own pinned dependency, and
8.63.0 via lint-plugin's direct dependency), which made lint-plugin's
rule tests fail to typecheck due to structurally incompatible RuleModule
types pulled from different physical copies. The same fragmentation was
also responsible for two failing modules-buildtools doc-generation
tests. Pinning @typescript-eslint/utils via `resolutions` converges the
whole family on a single version.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@martin-henz
martin-henz merged commit f106ec3 into conductor-migration Jul 27, 2026
@martin-henz
martin-henz deleted the fix/csg-normalize-list-datatype branch July 27, 2026 13:57
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