pstack statechart: strict typecheck reports four errors in run.ts and CLI tests
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 85/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- node.js, typescript
Piste de recherche
Commencez par les deux points de retour dans run.ts et les callbacks autour des lignes 427–465 de test/cli.test.ts ; l’issue indique les incompatibilités de types et les types concernés. Exécutez ./node_modules/.bin/tsc -p tsconfig.json --pretty false avec la toolchain indiquée pour vérifier les erreurs. Le travail est terminé lorsque la vérification stricte des types se termine avec le code de sortie 0 sans modifier le comportement à l’exécution.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
The statechart compiler in pstack 0.15.36 produces four TypeScript errors when checked with its existing scripts/tsconfig.json. I reproduced this on an unchanged copy of commit c742dd61706fbacc1b95f1a20b7b988cf096ce6c, using the pinned toolchain below.
There are two causes, each reported at two locations:
run.ts: theexitproperty incommonis inferred asnumber, whileCheckResult.exitrequires0 | 1 | 2. Both returns that spreadcommonfail.test/cli.test.ts: two test callbacks returnsignalWhile(...), whose promise resolves to the phase object. The NodeTestFntype requiresvoid | Promise<void>.
Reproduce
git clone --filter=blob:none --sparse https://github.com/cursor/plugins.git pstack-typecheck-repro
cd pstack-typecheck-repro
git sparse-checkout set pstack
git checkout --detach c742dd61706fbacc1b95f1a20b7b988cf096ce6c
cd pstack/skills/statechart/scripts
npm install --ignore-scripts --no-save --package-lock=false --no-audit --no-fund [email protected] @types/[email protected]
./node_modules/.bin/tsc -p tsconfig.json --pretty false
No changes to source files or tsconfig.json are needed. The package's declared [email protected] dependency is installed along with the two explicit packages.
Environment used:
- macOS, arm64
- Node
24.13.0, npm11.6.2 - TypeScript
7.0.2,@types/node26.1.2,fast-check4.5.3
Actual result
The command exits 1 with these diagnostics, abbreviated:
run.ts(455,9): error TS2322: ... is not assignable to type 'CheckResult'.
Types of property 'exit' are incompatible.
Type 'number' is not assignable to type '0 | 1 | 2'.
run.ts(471,5): error TS2322: ... is not assignable to type 'CheckResult'.
Types of property 'exit' are incompatible.
Type 'number' is not assignable to type '0 | 1 | 2'.
test/cli.test.ts(430,5): error TS2345: ... is not assignable to parameter of type 'TestFn'.
Type 'Promise<...phase object...>' is not assignable to type 'void | Promise<void>'.
test/cli.test.ts(453,5): error TS2345: ... is not assignable to parameter of type 'TestFn'.
Type 'Promise<...phase object...>' is not assignable to type 'void | Promise<void>'.
Expected result and scope
Checking the existing strict TypeScript configuration should exit 0, or the supported compiler and Node type versions should be specified if a different toolchain is intended.
The package currently exposes a runtime test command rather than a typecheck command. I did not observe a CLI failure caused by these type errors: a passing-model smoke test exited 0, and a counterexample smoke test exited 1 with the expected report. This report concerns static checking with the versions above.
A contextual type for common that preserves CheckResult["exit"], and callbacks that await signalWhile without returning its phase object, appear to be the relevant correction points.
- Langage dominant
- TypeScript
- Étoiles
- 13.9k
- Forks
- 1.4k
- Merge moyen
- 6 h 53 min
- PR mergées (30 j)
- 153
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cursor/plugins
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
cursor/plugins#1053 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
cursor/plugins#1025 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
cursor/plugins#1012 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 80/100
cursor/plugins#990 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
statechart: a relative TLA2TOOLS or JAVA path fails, because TLC runs in the snapshot folderPeut-être pris @Ehsan-hash l’a pris il y a 4 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
cursor/plugins#973 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de cursor/plugins
Issues similaires
-
bug low priority
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
laaielichter/Godotwright#81 ·
Les mainteneurs répondent en général sous 1 jour
-
gebied: infra
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
VincentSmedinga/sc-heerenveen-fansite#538 ·
Les mainteneurs répondent en général sous 1 jour
-
CI grants a token it does not need, never cancels superseded runs, and cannot fail on lint warningsOuvertegood first issue help wanted type:infrastructure type:security
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Open-Glassbeetle/glassbeetle#247 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour