The TS SDK type changes in PR #87 (KnownFrameKind, KNOWN_FRAME_KINDS, isKnownFrameKind, FrameKind = KnownFrameKind | (string & {})) were not typechecked — no local toolchain and npx tsc failed in that environment. sdk/typescript/ has a tsconfig.json and a package.json but nothing in CI appears to run tsc --noEmit against it.
An SDK that is only checked by eye is one refactor away from shipping broken types to whoever ports from it.
Add a CI job running tsc --noEmit on sdk/typescript/, and check whether sdk/python/ gets equivalent coverage (mypy/pyright).
Definition of done
The TS SDK type changes in PR #87 (
KnownFrameKind,KNOWN_FRAME_KINDS,isKnownFrameKind,FrameKind = KnownFrameKind | (string & {})) were not typechecked — no local toolchain andnpx tscfailed in that environment.sdk/typescript/has atsconfig.jsonand apackage.jsonbut nothing in CI appears to runtsc --noEmitagainst it.An SDK that is only checked by eye is one refactor away from shipping broken types to whoever ports from it.
Add a CI job running
tsc --noEmitonsdk/typescript/, and check whethersdk/python/gets equivalent coverage (mypy/pyright).Definition of done
tsc --noEmitagainstsdk/typescript/in a job of its own, onethat does not first pay for the Rust build.
sdk/typescripttypechecks clean under exactly the command CI runs.to pass again once it is reverted, with both outputs quoted in the PR.
sdk/python/gets equivalent coverage is decided explicitly: amypy/pyrightjob is added, or the PR description says why not.sdk/pythontypechecks clean under exactly the command CI runs.to pass again once it is reverted, with both outputs quoted in the PR.
comment beside it says why it floats.
CHANGELOG.mdrecords the new jobs under[Unreleased].