Skip to content

chore(ci): dependabot typescript ceiling + fix Build-job flake - #172

Merged
salishforge merged 2 commits into
mainfrom
chore/ci-hygiene-gen0
Jul 27, 2026
Merged

chore(ci): dependabot typescript ceiling + fix Build-job flake#172
salishforge merged 2 commits into
mainfrom
chore/ci-hygiene-gen0

Conversation

@salishforge

Copy link
Copy Markdown
Owner

Summary

Gen 0 of the post-Phase-5 follow-ups — two independent CI-trust fixes, one commit each.

1. fix(build): declare the optional @huggingface/transformers module. npm run build is a plain tsc, but embedding.ts's only use of that package is a dynamic import of an optional dependency. Environments installing without optional deps (CI does so intermittently — the package pulls platform-specific native artifacts) fail resolution and die with TS2307 on an unchanged tree. This is what failed on #168, and it makes Build a coin-flip rather than a signal.

The declaration is deliberately minimal — one factory returning unknown, since embedding.ts already defines its own FeatureExtractionPipeline shape and casts to it. No upstream type is depended on.

Verified all three states:

State Result
package present build passes
package absent, with this declaration build passes
package absent, without it (control) TS2307 at embedding.ts:208 — reproduces the CI failure

2. ci(deps): ignore typescript >=6.1.0 in dependabot. Every published @typescript-eslint release caps peer typescript at <6.1.0; a bump past it fails npm ci with ERESOLVE before any job runs, so it reds out every open PR. That cost the repo a day after #154, and open PR #169 is retrying it right now.

Expressed as a version ceiling, not update-types: version-update:semver-major — 6.1.0 is a minor bump that would breach the same peer range and slip past a major-only ignore. CI already catches this fast and loudly; the rule is about not burning CI minutes on unmergeable PRs, not a replacement for the gate.

Follow-on dependabot housekeeping (after this merges)

🤖 Generated with Claude Code

https://claude.ai/code/session_011xCqQo49d3CEbn6oEvb3Ru

salishforge and others added 2 commits July 27, 2026 20:11
`npm run build` is a plain `tsc`, but embedding.ts's only use of this
package is a dynamic import of an *optional* dependency. Environments
that install without optional deps — CI does so intermittently, since
the package pulls platform-specific native artifacts — fail resolution
and die with TS2307 on an unchanged source tree. That made Build a
coin-flip rather than a signal (it is what failed on #168).

The declaration is minimal by design: one factory, returning `unknown`,
because embedding.ts already defines its own FeatureExtractionPipeline
shape and casts to it. No upstream type is depended on, so shadowing
them when the package is present costs nothing.

Verified all three states: package present (passes), package absent
(passes), and package absent without this declaration (reproduces
TS2307 at embedding.ts:208).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xCqQo49d3CEbn6oEvb3Ru
…ling

Every published @typescript-eslint release declares peer typescript
">=4.8.4 <6.1.0". A bump past that ceiling fails `npm ci` with ERESOLVE
before any job starts, so it reds out every open PR in the repo rather
than only its own — which is what happened for a day after #154 landed
typescript@^7.0.2, and is what open PR #169 is currently retrying.

Expressed as a version ceiling rather than
`update-types: version-update:semver-major`, because 6.1.0 is a *minor*
bump that would breach the same peer range and slip through a
major-only ignore.

CI already fails fast and loudly on this, so the rule is about not
burning CI minutes and reviewer attention on PRs that cannot pass —
not a substitute for the gate.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xCqQo49d3CEbn6oEvb3Ru
@salishforge
salishforge merged commit ee71bd0 into main Jul 27, 2026
12 checks passed
@salishforge
salishforge deleted the chore/ci-hygiene-gen0 branch July 27, 2026 20:14
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