@stsepelin/checktrail 0.1.0-alpha.1 → 0.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/STATUS.md CHANGED
@@ -3,12 +3,30 @@
3
3
  This is an experimental foundation with public source at
4
4
  [stsepelin/checktrail](https://github.com/stsepelin/checktrail).
5
5
  Check the [installation guide](INSTALLATION.md) for package availability and setup.
6
- All 13 hosted jobs passed at `52ba415`; the exact run and earlier cache/path
7
- failures are recorded in `NATIVE-CI.md`. The `0.1.0-alpha.1` preview changes
8
- release metadata and documentation; its publication is a separate gate.
6
+ The `0.1.0-alpha.2` preview is published on npm and active in the MCP Registry.
7
+ The [hosted run at 4ce8398](https://github.com/stsepelin/checktrail/actions/runs/35590670960)
8
+ passed all jobs. The published tarball matched the reviewed artifact; fresh
9
+ registry installation, CLI/library validation, generated npx startup and MCP
10
+ execution/trust behavior were verified. Earlier toolchain evidence remains in
11
+ `NATIVE-CI.md`; release details and tag limitations are in `RELEASE.md`.
12
+ The GitHub alpha.2 prerelease includes the verified artifact and checksum.
13
+ [Public adoption](PUBLIC-ADOPTION.md) records the published package on five pinned
14
+ libraries, including incomplete coverage and a TypeScript 4.9.5 incompatibility.
15
+
16
+ ## Alpha.3 candidate (unpublished)
17
+
18
+ - [TypeScript compatibility](TYPESCRIPT.md): plain typechecking now passes the
19
+ native 4.9.5 regression while retaining the 6.0.3 `noCheck` override and native
20
+ file accounting. A packed CLI/library/MCP replay fixes the recorded mitt case.
21
+ Published alpha.2 and its immutable adoption record retain the original failure.
9
22
 
10
23
  ## Implemented
11
24
 
25
+ - Alpha.2: conservative multi-language `init`, execution-free `doctor`,
26
+ and version-pinned MCP configuration output for Codex, Claude Code/Desktop,
27
+ Cursor and VS Code. Existing files are preserved. See [ONBOARDING.md](ONBOARDING.md)
28
+ for scope, ambiguity handling and package upgrade/rollback verification.
29
+
12
30
  - Exact required-test accounting across prepared CI language profiles and native
13
31
  container helpers, including dedicated Ruby/Swift jobs. Skipped, missing,
14
32
  duplicate, TODO or failing cases cannot satisfy these profiles. Hosted profiles
@@ -146,11 +164,11 @@ a general speedup/graph-completeness claim.
146
164
 
147
165
  ## Release preparation
148
166
 
149
- `server.json` and npm `mcpName` describe the `0.1.0-alpha.1` preview.
150
- The metadata passed the pinned official registry schema; a native SDK-client test
151
- starts its command and verifies execution remains disabled. This does not establish
152
- registry acceptance or npm publication. Hosted source evidence is recorded
153
- separately in `NATIVE-CI.md`. See `RELEASE.md`.
167
+ `server.json`, the npm package and the engine identify the unpublished
168
+ `0.1.0-alpha.3` candidate. The currently published npm and Registry release is
169
+ alpha.2. The candidate adds legacy TypeScript compatibility; publication requires
170
+ its source commit to pass hosted CI and its exact tarball to pass release checks.
171
+ Historical publication evidence and the candidate sequence are in `RELEASE.md`.
154
172
 
155
173
  ## Pinned pack distribution
156
174
 
@@ -0,0 +1,78 @@
1
+ # TypeScript compiler compatibility
2
+
3
+ The source checkout's `javascript.typescript` profile now supports the exercised
4
+ TypeScript 4.9.5 and 6.0.3 configurations. This fix is included in the
5
+ **unpublished alpha.3 candidate**. Published alpha.2 still passes an option that
6
+ TypeScript 4.9.5 rejects. The original
7
+ [public adoption record](PUBLIC-ADOPTION.md) remains unchanged as release evidence.
8
+ Other compiler versions require their own native verification.
9
+
10
+ ## Invocation and boundaries
11
+
12
+ Planning locates the project-local or root-hoisted compiler without importing it.
13
+ During explicitly trusted execution, a runner loads the selected compiler API
14
+ and uses its public command-line parser to check support for `--noCheck false`.
15
+ Supported compilers receive that override, so `noCheck: true` cannot disable the
16
+ selected type check. Older compilers that reject this option receive the remaining
17
+ arguments; an unexpected capability response stops before the compiler CLI starts.
18
+ The probe parses fixed arguments and does not parse project configuration.
19
+
20
+ The compiler entry and API must resolve inside the configured root. They are
21
+ trusted executable dependencies; this check is not a sandbox. No compiler is
22
+ installed or downloaded during planning or execution. `doctor` remains static
23
+ and does not perform this runtime capability probe.
24
+
25
+ Checks still disable emitted output and incremental state and require every
26
+ inventoried TypeScript source in the native file list. A successful compiler exit
27
+ with omitted source is incomplete. A legacy compiler's unsupported project options
28
+ remain compiler errors; the runner does not rewrite `tsconfig.json`.
29
+
30
+ The Vue runner uses the same capability helper. Its separately tested Vue 3.5.43,
31
+ vue-tsc 3.3.11 and TypeScript 6.0.3 profile retains type-error detection and the
32
+ `skipTemplateCodegen` rejection. This does not establish legacy Vue compatibility.
33
+ The solution-build adapter remains gated to TypeScript 6.0.3; see
34
+ [TYPESCRIPT-BUILD.md](TYPESCRIPT-BUILD.md).
35
+
36
+ ## Verification
37
+
38
+ The new 4.9.5 regression failed on the previous adapter's TS5023 error. With this
39
+ change it accepts valid code, rejects a real TS2322 error, accounts for excluded
40
+ source, identifies the actual tool version, supports a root-hoisted compiler and
41
+ paths with spaces, and leaves emitted/incremental files absent. Existing native
42
+ 6.0.3 and Vue regressions still reject type errors even with `noCheck: true`.
43
+ Separate regressions reject an escaping compiler API and an ambiguous capability
44
+ response before the compiler CLI executes. Planning is checked against executable
45
+ traps in both the CLI and API files.
46
+
47
+ The [known-case replay](measurements/typescript-legacy-replay.json) uses mitt at
48
+ the same pinned revision and the same TypeScript 4.9.5 tool profile as the alpha.2
49
+ adoption exercise. After generating its required root declaration, native checking
50
+ and the packed fix pass; an original injected TS2322 error fails through the CLI,
51
+ library and MCP. The policy and tracked upstream files stay unchanged, and the
52
+ injected source and generated declaration are removed afterwards. This is a
53
+ regression replay after observing the failure, not a new independent holdout.
54
+ The record identifies the tested local tarball and adapter source hashes; it is
55
+ not the published alpha.2 artifact.
56
+
57
+ ## Prepare the legacy regression
58
+
59
+ The old compiler has a separate locked installation so its `tsc` binary cannot
60
+ replace the compiler used to build Checktrail:
61
+
62
+ ```sh
63
+ mkdir -p .checktrail/typescript-legacy-tools
64
+ cp scripts/typescript-legacy-tools/package.json scripts/typescript-legacy-tools/package-lock.json .checktrail/typescript-legacy-tools/
65
+ npm ci --prefix .checktrail/typescript-legacy-tools --ignore-scripts --no-audit --no-fund
66
+ npm run build
67
+ node --test dist/test/typescript.test.js dist/test/vue-tsc.test.js dist/test/typescript-build.test.js
68
+ ```
69
+
70
+ The general suite explicitly skips the legacy native case when this installation
71
+ is absent. The hosted main matrix prepares it and the `javascript` required-native
72
+ profile rejects a skipped or missing legacy regression. A local pass does not
73
+ establish hosted CI results.
74
+
75
+ TypeScript introduced the public `noCheck` option in
76
+ [TypeScript 5.6](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-6.html#the--nocheck-option).
77
+ The runner checks actual parser behavior instead of assuming capabilities from a
78
+ package version string.