You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The run in question (https://github.com/Cratis/Samples/actions/runs/34032783153) is not on main — it's on branch chore/typescript-7 / PR #569 ("Upgrade TypeScript to 7 (build failing — needs review)"). main's own Build Samples Solution runs are green (e.g. #34028300447, #34024508448), because main still pins typescript at 6.0.3, and .github/workflows/update-packages.yml deliberately excludes typescript from automated dependency updates:
Confirmed against the captured log: typescript resolves to 7.0.2 on that branch, and yarn lint:ci fails immediately in every frontend workspace with:
Error: typescript-eslint does not support TS 7.0.
at Object.<anonymous> (node_modules/@typescript-eslint/eslint-plugin/dist/index.js:50:11)
This is a real, currently-unresolved upstream limitation, not a Samples misconfiguration:
@typescript-eslint/eslint-plugin@8.69.0 (latest, and also latest canary 8.69.1-alpha.0) still declares "typescript": ">=4.8.4 <6.1.0" as a peer dependency — TS 7 is out of range.
The other blocker PR #569 already documented is now resolved upstream
PR #569's own description and a maintainer comment flag a second blocker: @cratis/arc.vite's EmitMetadataPlugin used the classic TS Program/ts.sys API, which TS 7's native package no longer exposes, breaking yarn build (Vite). That was fixed and merged in Cratis/Arc#2340 (2026-07-15), which also ports rollup-plugin-typescript2 → rollup-plugin-swc3 and works around the @typescript-eslint peer-dependency conflict via an aliased typescript-for-eslint devDependency + a postinstall script that relinks it into @typescript-eslint's own dependency tree (since neither resolutions nor packageExtensions can override an already-declared peer dependency). @cratis/arc.vite@22.10.4 (published 2026-09-05, already what main consumes) includes this fix.
So the Vite-build blocker is gone for a fresh attempt. The typescript-eslint peer-dependency conflict remains, but Arc#2340 shows a working pattern for it.
chore/typescript-7 was created 2026-07-10 (before Arc#2340 merged) and has drifted significantly from main — its latest "merge main" commit is missing entire workspace folders that exist on main now (Arc/React, ModelFirst aren't present in the branch tree at all). Patching the branch in place isn't safe; a real fix means re-doing the TypeScript 7 bump fresh off current main, reapplying the typescript-for-eslint aliasing pattern from Arc, and re-verifying lint → compile → test → build across all three frontend workspaces (Arc/React, Library/Lending, Library/Members). That's a deliberate feature-sized change to an experimental branch a maintainer already marked "Draft ... needs review" — not something to force onto their open PR as an ad-hoc CI fix.
Recommendation
No action needed on main — it is intentionally pinned and its CI is green.
Diagnosis
The run in question (https://github.com/Cratis/Samples/actions/runs/34032783153) is not on
main— it's on branchchore/typescript-7/ PR #569 ("Upgrade TypeScript to 7 (build failing — needs review)").main's ownBuild Samples Solutionruns are green (e.g. #34028300447, #34024508448), becausemainstill pinstypescriptat6.0.3, and.github/workflows/update-packages.ymldeliberately excludestypescriptfrom automated dependency updates:So there is nothing to fix on
main— the workflow itself is healthy there.Why PR #569 fails
Confirmed against the captured log:
typescriptresolves to7.0.2on that branch, andyarn lint:cifails immediately in every frontend workspace with:This is a real, currently-unresolved upstream limitation, not a Samples misconfiguration:
@typescript-eslint/eslint-plugin@8.69.0(latest, and also latest canary8.69.1-alpha.0) still declares"typescript": ">=4.8.4 <6.1.0"as a peer dependency — TS 7 is out of range.The other blocker PR #569 already documented is now resolved upstream
PR #569's own description and a maintainer comment flag a second blocker:
@cratis/arc.vite'sEmitMetadataPluginused the classic TSProgram/ts.sysAPI, which TS 7's native package no longer exposes, breakingyarn build(Vite). That was fixed and merged in Cratis/Arc#2340 (2026-07-15), which also portsrollup-plugin-typescript2→rollup-plugin-swc3and works around the@typescript-eslintpeer-dependency conflict via an aliasedtypescript-for-eslintdevDependency + apostinstallscript that relinks it into@typescript-eslint's own dependency tree (since neitherresolutionsnorpackageExtensionscan override an already-declared peer dependency).@cratis/arc.vite@22.10.4(published 2026-09-05, already whatmainconsumes) includes this fix.So the Vite-build blocker is gone for a fresh attempt. The
typescript-eslintpeer-dependency conflict remains, but Arc#2340 shows a working pattern for it.Why this isn't a small patch to PR #569 as-is
chore/typescript-7was created 2026-07-10 (before Arc#2340 merged) and has drifted significantly frommain— its latest "merge main" commit is missing entire workspace folders that exist onmainnow (Arc/React,ModelFirstaren't present in the branch tree at all). Patching the branch in place isn't safe; a real fix means re-doing the TypeScript 7 bump fresh off currentmain, reapplying thetypescript-for-eslintaliasing pattern from Arc, and re-verifyinglint→compile→test→buildacross all three frontend workspaces (Arc/React,Library/Lending,Library/Members). That's a deliberate feature-sized change to an experimental branch a maintainer already marked "Draft ... needs review" — not something to force onto their open PR as an ad-hoc CI fix.Recommendation
main— it is intentionally pinned and its CI is green.mainand updated with the sametypescript-for-eslintaliasing workaround Arc used (now proven viable since@cratis/arc.vitepublishes the TS7-compatible build), or left closed/paused untiltypescript-eslintships official TS 7 support (typescript-eslint/typescript-eslint#10940).typescriptexclusion inupdate-packages.ymluntil one of the above happens.Posted by Stagehand (AI) - an autonomous agent, not a person. Review accordingly.
Ref #590