Skip to content

Workflow and obligation inventory ​

Source inspection: 2026-11-01. Read with scope and limitations. This is a source snapshot, not a live required-check export. Every job below is owned operationally by the repository maintainer; no .github/CODEOWNERS is present to establish delegated path ownership. Matrix entries are build legs, not independent policy requirements.

Benchmark Workflow (benchmark.yml) ​

Source: benchmark.yml.

Triggers and input defaults: {"workflow_dispatch":{"inputs":{"ref":{"default":"main","required":false},"save-results":{"type":"boolean","default":false,"required":false}}},"issue_comment":{"types":["created"]}}.

Concurrency: {"group":"benchmark-${{ github.event.issue.number || github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"write"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
benchmark.yml / check-triggergithub.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '/benchmark')[]ubuntu-latest / 60single
benchmark.yml / benchmarkalways() && <br>(github.event_name == 'workflow_dispatch' &#124;&#124; <br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>check-triggerubuntu-latest / 20single
benchmark.yml / reportalways() && <br>needs.benchmark.result != 'cancelled' &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124; <br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>["check-trigger","benchmark"]ubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • check-trigger: Check comment author: source script block; see linked job; Get PR details: source script block; see linked job [if steps.check.outputs.should-run == 'true'].
  • benchmark: Determine checkout ref: source script block; see linked job; Build native package: pnpm --filter @verter/native build; Build benchmark package: pnpm --filter @verter/benchmark install; Run benchmarks: source script block; pnpm --silent --filter @verter/benchmark bench:json > benchmark-output.json; Save results to branch: source script block; see linked job [if inputs.save-results == true].
  • report: Generate PR comment: source script block; see linked job; Post PR comment: const comment = &#96;${{ steps.generate-comment.outputs.comment }}&#96;;<br><br>await github.rest.issues.createComment({<br> owner: context.repo.owner,<br> repo: context.repo.repo,<br> issue_number: ${{ needs.check-trigger.outputs.pr-number }},<br> body: comment<br>}); [if github.event_name == 'issue_comment' && needs.check-trigger.outputs.pr-number]; Create check run: source script block; see linked job [if github.event_name == 'issue_comment' && needs.check-trigger.outputs.pr-sha]; Summary: echo "${{ steps.generate-comment.outputs.comment }}" >> $GITHUB_STEP_SUMMARY.

CI (ci.yml) ​

Source: ci.yml.

Triggers and input defaults: {"push":{"branches":"main"},"pull_request":null}.

Concurrency: {"group":"ci-${{ github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read","checks":"write"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
ci.yml / detect-changesdefault[]ubuntu-latest / 10single
ci.yml / rust-fmtneeds.detect-changes.outputs.rust == 'true'detect-changesubuntu-latest / 15single
ci.yml / proto-fmtneeds.detect-changes.outputs.proto == 'true'detect-changesubuntu-latest / 15single
ci.yml / rust-clippyneeds.detect-changes.outputs.rust == 'true'detect-changesubuntu-latest / 40single
ci.yml / rust-build-configsneeds.detect-changes.outputs.rust == 'true'detect-changesubuntu-latest / 95single
ci.yml / rust-test-buildneeds.detect-changes.outputs.rust == 'true'detect-changesubuntu-latest / 95single
ci.yml / rust-testneeds.detect-changes.outputs.rust == 'true'["detect-changes","rust-test-build"]ubuntu-latest / 95{"fail-fast":false,"matrix":{"shard":[1,2,3,4]}}
ci.yml / rust-observeneeds.detect-changes.outputs.rust == 'true'detect-changesubuntu-latest / 35single
ci.yml / rust-providers-liveneeds.detect-changes.outputs.providers == 'true'detect-changesubuntu-latest / 95single
ci.yml / compiler-contractsneeds.detect-changes.outputs.compiler_contracts == 'true'detect-changesubuntu-latest / 95{"fail-fast":false,"matrix":{"group":["core","compiler","session","session-observe"]}}
ci.yml / bf2-authoritativeneeds.detect-changes.outputs.bf2 == 'true'detect-changesubuntu-latest / 95single
ci.yml / js-build-testneeds.detect-changes.outputs.js == 'true'detect-changesubuntu-latest / 30single
ci.yml / sfc-projectionneeds.detect-changes.outputs.sfc_projection == 'true'detect-changesubuntu-latest / 45{"fail-fast":false,"matrix":{"shard":[1,2]}}
ci.yml / architecture-healthneeds.detect-changes.outputs.arch == 'true'detect-changesubuntu-latest / 10single
ci.yml / svelte-oracleneeds.detect-changes.outputs.svelte_oracle == 'true'detect-changesubuntu-latest / 30single
ci.yml / svelte-conformanceneeds.detect-changes.outputs.svelte_conformance == 'true'detect-changesubuntu-latest / 30single
ci.yml / svelte-client-smokesneeds.detect-changes.outputs.svelte_client_smokes == 'true'detect-changesubuntu-latest / 15single
ci.yml / svelte-compiler-benchmarkneeds.detect-changes.outputs.svelte_perf == 'true'detect-changesubuntu-latest / 25single
ci.yml / playground-testneeds.detect-changes.outputs.playground == 'true'["detect-changes","wasm-build","build-native-node"]ubuntu-latest / 25single
ci.yml / wasm-buildneeds.detect-changes.outputs.wasm_artifact == 'true'detect-changesubuntu-latest / 35single
ci.yml / wasm-observe-testneeds.detect-changes.outputs.wasm == 'true'detect-changesubuntu-latest / 45single
ci.yml / browser-hostneeds.detect-changes.outputs.wasm == 'true'["detect-changes","wasm-build"]ubuntu-latest / 40single
ci.yml / build-lsp-debugneeds.detect-changes.outputs.vscode == 'true' &#124;&#124; needs.detect-changes.outputs.editor_lsp == 'true' &#124;&#124; needs.detect-changes.outputs.dx == 'true'detect-changesubuntu-latest / 40single
ci.yml / build-vscode-e2eneeds.detect-changes.outputs.vscode == 'true' &#124;&#124; needs.detect-changes.outputs.editor_lsp == 'true'detect-changesubuntu-latest / 35single
ci.yml / editor-neutral-lspneeds.detect-changes.outputs.editor_lsp == 'true'["detect-changes","build-lsp-debug","build-vscode-e2e"]ubuntu-latest / 25single
ci.yml / vscode-e2eneeds.detect-changes.outputs.vscode == 'true' &#124;&#124; needs.detect-changes.outputs.editor_lsp == 'true'["detect-changes","build-lsp-debug","build-vscode-e2e"]ubuntu-latest / 45{"fail-fast":false,"matrix":"${{ fromJSON(needs.build-vscode-e2e.outputs.matrix) }}"}
ci.yml / build-native-nodeneeds.detect-changes.outputs.native_artifact == 'true'detect-changesubuntu-latest / 40single
ci.yml / native-testneeds.detect-changes.outputs.native == 'true'["detect-changes","build-native-node"]ubuntu-latest / 40single
ci.yml / native-observe-testneeds.detect-changes.outputs.native == 'true'detect-changesubuntu-latest / 60single
ci.yml / transport-route-equivalenceneeds.detect-changes.outputs.transport == 'true'["detect-changes","wasm-build","build-native-node"]ubuntu-latest / 40single
ci.yml / dx-harness-hermeticneeds.detect-changes.outputs.dx == 'true'["detect-changes","build-lsp-debug"]ubuntu-latest / 30single
ci.yml / build-editor-lspneeds.detect-changes.outputs.editors == 'true'detect-changesubuntu-latest / 40single
ci.yml / editor-contractsneeds.detect-changes.outputs.editors == 'true'["detect-changes","build-editor-lsp"]ubuntu-latest / 45single
ci.yml / jetbrains-pluginneeds.detect-changes.outputs.jetbrains == 'true'["detect-changes"]ubuntu-latest / 60single
ci.yml / release-checkneeds.detect-changes.outputs.release == 'project'detect-changescallee / default./.github/workflows/release.yml inputs={"dry_run":true}
ci.yml / release-ide-checkneeds.detect-changes.outputs.release == 'ide'detect-changescallee / default./.github/workflows/release-ide.yml inputs={"dry_run":true}
ci.yml / ci-successalways()["detect-changes","release-check","release-ide-check","rust-fmt","proto-fmt","rust-clippy","rust-build-configs","rust-test-build","rust-test","rust-observe","rust-providers-live","compiler-contracts","bf2-authoritative","js-build-test","sfc-projection","architecture-health","svelte-oracle","svelte-conformance","svelte-client-smokes","svelte-compiler-benchmark","playground-test","wasm-build","build-vscode-e2e","editor-neutral-lsp","vscode-e2e","native-test","native-observe-test","wasm-observe-test","transport-route-equivalence","dx-harness-hermetic","build-lsp-debug","build-native-node","build-editor-lsp","editor-contracts","jetbrains-plugin","browser-host"]ubuntu-latest / 5single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • detect-changes: Record the tree this pull request run tests: echo "::notice title=ci-tested::pull=$PULL tree=$(git rev-parse 'HEAD^{tree}')" [if github.event_name == 'pull_request']; Audit the lane selection against the tree: node scripts/ci-impact.mjs --audit; Reuse the merged pull request's CI: node scripts/release-proof.mjs --landed --sha "$GITHUB_SHA" [if github.event_name == 'push']; Compose the lane gates from the path filters and the crate graph: source script block; node scripts/ci-impact.mjs --changed-files "$files" \.
  • rust-fmt: cargo fmt --all -- --check.
  • proto-fmt: pnpm proto:check.
  • rust-clippy: cargo clippy --workspace --all-targets -- -D warnings.
  • rust-build-configs: Check the release configuration: cargo check --workspace --release; Check the shipped configuration (debug-assertions off): cargo check --workspace --all-targets --profile no-debug-assertions; Run the shipped-configuration contract (debug-assertions off): cargo nextest run --no-fail-fast -p verter_shipped_cfg_contract \<br> --cargo-profile no-debug-assertions; Clippy (wasm32-unknown-unknown): cargo clippy --target wasm32-unknown-unknown -p verter_wasm -- -D warnings; Check the instrumented wasm32 build: cargo check --target wasm32-unknown-unknown -p verter_wasm --features semantic-observe; Clippy (transport-equivalence feature): cargo clippy -p verter_session --tests --features transport-authoritative -- -D warnings.
  • rust-test-build: Anti-binary-growth integration-test layout: node scripts/check-integration-test-layout.mjs; Build the shared Rust test archive: source script block; node scripts/compile-fixture-artifacts.mjs archive --workspace --archive-file artifacts/rust-nextest-archive.tar.zst ; node scripts/run-cached.mjs -- 'node scripts/compile-fixture-artifacts.mjs archive --workspace --archive-file artifacts/rust-nextest-archive.tar.zst'; Verify the provider CI partition: node scripts/provider-ci.mjs verify --archive-file artifacts/rust-nextest-archive.tar.zst.
  • rust-test: Fetch locked Cargo dependencies: cargo fetch --locked; Run core Rust tests from the shared archive: source script block; node scripts/ci-junit-metadata.mjs snapshot-env --out "$RUNNER_TEMP/nextest-env.json" ; cargo "${nextest_argv[@]}"; Locate nextest JUnit report: source script block; see linked job [if always()].
  • rust-observe: Check the instrumentation runner: node --test scripts/observe-lane.test.mjs; Verify host output and audit capture: node scripts/observe-lane.mjs smoke.
  • rust-providers-live: Build the language-shared and plugin prerequisites: pnpm --filter @verter/language-shared --filter @verter/typescript-plugin build; Run serial tsgo provider tests: node scripts/provider-ci.mjs run tsgo.
  • compiler-contracts: Verify compiler contracts lane and cache ownership: node --test scripts/compiler-ci-lane-selftest.mjs; Run workspace compile contracts: node scripts/compile-contracts.mjs --group ${{ matrix.group }} 2>&1 &#124; tee compile-contracts-${{ matrix.group }}.log; Verify generated Svelte artifacts: cargo test --package verter_compiler --test main cases::svelte_generated_artifacts_freshness::generated_svelte_artifacts_match_their_authoritative_inputs -- --exact [if matrix.group == 'compiler']; verter_compiler default feature-off build + lib tests (isolated): cargo build -p verter_compiler<br>cargo test -p verter_compiler --lib [if matrix.group == 'compiler'].
  • bf2-authoritative: Build BF2 TypeScript declaration prerequisites: pnpm run build:ts; Provision BF2's offline oracle npm cache: node packages/framework-conformance-harness/scripts/provision-oracle-npm-cache.mjs; Verify BF2 CI lane contract: node --test scripts/bf2-ci-lane-selftest.mjs; Run exact BF2 authoritative inventory: source script block; node scripts/ci-junit-metadata.mjs snapshot-env --out "$RUNNER_TEMP/nextest-env.json" ; node scripts/bf2-authoritative.mjs.
  • js-build-test: Svelte oracle goldens in sync with pinned compiler: node scripts/gen-svelte-goldens.mjs --check; Build TS packages: pnpm run build:ts; Run tests: pnpm --filter @verter/types exec vitest --run --reporter=default --reporter=junit --outputFile=../../test-results/vitest-junit.xml; vue-vscode unit specs (discovered, NOT enumerated): pnpm vitest run packages/vue-vscode/src; Public type contracts (@verter/component-meta): pnpm --filter @verter/component-meta run test:types; Rust build-tooling helper self-tests (sccache-env, publish set): pnpm run test:scripts:ci; CI aggregate completeness: node scripts/check-ci-aggregate.mjs<br>node --test scripts/check-ci-aggregate.test.mjs; Binary distribution guards (platform packages + release wiring): pnpm vitest run packages/binary-launcher packages/verter-lsp packages/verter-mcp; Verify package tarballs: node scripts/verify-packages.mjs.
  • sfc-projection: Build TS packages: pnpm run build:ts; Verify the sfc-projection nodes (shard 1/2): source script block; see linked job [if matrix.shard == 1]; Verify the sfc-projection nodes (shard 2/2): CARGO_INCREMENTAL=1 pnpm run test:sfc-projection [if matrix.shard == 2].
  • architecture-health: ARH0 verify (responsibility and debt inventory): node tests/architecture-health/ARH0/verify.mjs; ARH0 dirty twins: node --test tests/architecture-health/ARH0/arh0.test.mjs; ARH1 verify (dependency contracts + cutover register): node tests/architecture-health/ARH1/verify.mjs; ARH1 dirty twins: node --test tests/architecture-health/ARH1/arh1.test.mjs; ARH2 verify (characterization + complexity measurements): node tests/architecture-health/ARH2/verify.mjs; ARH2 dirty twins: node --test tests/architecture-health/ARH2/arh2.test.mjs; ARH4 verify (host and session lifecycle cutover): node tests/architecture-health/ARH4/verify.mjs; ARH4 dirty twins: node --test tests/architecture-health/ARH4/arh4.test.mjs; ARH5 verify (compiler facade cutover): node tests/architecture-health/ARH5/verify.mjs; ARH5 dirty twins: node --test tests/architecture-health/ARH5/arh5.test.mjs; ARH7 verify (VS Code activation cutover): node tests/architecture-health/ARH7/verify.mjs; ARH7 dirty twins: node --test tests/architecture-health/ARH7/arh7.test.mjs.
  • svelte-oracle: Svelte name-parity corpus in sync with pinned compiler: node scripts/gen-svelte-name-parity-corpus.mjs --check; Svelte oracle harness (live): cargo test -p verter_compiler --features svelte-oracle.
  • svelte-conformance: Run consolidated Rust conformance tests: cargo test --no-fail-fast -p verter_svelte_conformance --features conformance-tests --lib --bin verter_svelte_conformance --test main -- --test-threads=4; Conformance corpus matches the manifest: cargo run -p verter_svelte_conformance -- check; Conformance goldens in sync with pinned compiler: node scripts/gen-svelte-goldens.mjs --conformance --check.
  • svelte-client-smokes: Run Svelte client behavioral smokes: shopt -s failglob<br>export LC_ALL=C<br>pnpm exec vitest run test/svelte-client*-smoke.spec.ts.
  • svelte-compiler-benchmark: Verify Svelte benchmark contract: pnpm --filter @verter/benchmark exec vitest run src/svelte-perf-contract.spec.ts; Verify benchmark corpus against official Svelte goldens: node scripts/gen-svelte-goldens.mjs --check<br>cargo test -p verter_compiler --test main \<br> cases::svelte_client_emit_topology::svelte_performance_manifest_is_oracle_proven_and_representative \<br> -- --exact.
  • playground-test: Playground tests: pnpm --filter @verter/playground test; Playground WASM compiler spec: pnpm --filter @verter/playground test:wasm; Build TS packages: pnpm run build:ts; Sync WASM into the playground: pnpm --filter @verter/playground run sync:wasm; Build the playground: pnpm --filter @verter/playground exec vite build.
  • wasm-build: Build WASM (bindgen): pnpm --filter @verter/wasm run build:bindgen; Build @verter/wasm TypeScript: pnpm --filter @verter/wasm run build:ts; Smoke test WASM (bindgen output): node -e "const fs = require('fs'); const wasm = fs.readFileSync('packages/wasm/wasm/verter_wasm_bg.wasm'); console.log('WASM size:', wasm.length, 'bytes'); if (wasm.length < 1000) throw new Error('WASM too small');"; Optimize WASM (wasm-opt): pnpm --filter @verter/wasm run opt:wasm [if github.event_name != 'pull_request']; Smoke test WASM (optimised): node -e "const fs = require('fs'); const wasm = fs.readFileSync('packages/wasm/wasm/verter_wasm_bg.wasm'); console.log('WASM size:', wasm.length, 'bytes'); if (wasm.length < 1000) throw new Error('WASM too small');" [if github.event_name != 'pull_request']; Verify committed carrier fixtures against the built WASM: node packages/playground/scripts/capture-wasm-carrier-fixtures.mjs --check; WASM JavaScript-boundary lane: node scripts/wasm-js-boundary-lane.mjs --exhaustive; Build TS packages: pnpm run build:ts; Test @verter/wasm: pnpm --filter @verter/wasm test.
  • wasm-observe-test: Build instrumented WASM (semantic-observe): pnpm --filter @verter/wasm run build:observe; Verify the module captures: source script block; node --input-type=module -e "import { readFileSync } from 'node:fs'; const m = await import('./packages/wasm/wasm/verter_wasm.js'); m.initSync({ module: readFileSync('packages/wasm/wasm/verter_wasm_bg.wasm') }); const a = m.captureAvailability(); if (a !== 'Available') { console.error('::error::instrumented module reports capture ' + a); process.exit(1); }"; Build TS packages: pnpm run build:ts; Test @verter/wasm (capture available): pnpm --filter @verter/wasm test.
  • browser-host: Ensure a C linker: command -v cc >/dev/null &#124;&#124; (apt-get update -qq && apt-get install -y -qq --no-install-recommends gcc libc6-dev); Run the browser-host-domain gate: node scripts/browser-host-gate.mjs --skip-build.
  • build-lsp-debug: Build verter-lsp, relay shim, DX baseline and MCP server (debug): cargo build -p verter_lsp -p verter_relay_shim -p verter_dx_baseline -p verter_mcp.
  • build-vscode-e2e: Test VS Code E2E harness units: pnpm --filter verter-vscode test:e2e:lib:unit; Test VS Code acceptance units: pnpm --filter verter-vscode test:e2e:acceptance:unit; Prepare VS Code E2E artifacts: pnpm --filter verter-vscode prepare:e2e:ts; Derive VS Code E2E route matrix: echo "matrix=$(node packages/vue-vscode/out-test/e2e/printCiMatrix.js --tier=pr)" >> "$GITHUB_OUTPUT".
  • editor-neutral-lsp: Make editor integration binaries executable: chmod +x target/debug/verter-lsp target/debug/verter-relay-shim target/debug/verter-mcp; Build editor-neutral contract packages: pnpm --filter "@verter/dx-harness..." build; Run tsgo and real shared-tsgo contract: pnpm --filter @verter/dx-harness test:editor-neutral-lsp.
  • vscode-e2e: Make editor integration binaries executable: chmod +x target/debug/verter-lsp target/debug/verter-relay-shim target/debug/verter-mcp; Resolve VS Code host cache key: test_electron=$(node -p "require('./packages/vue-vscode/node_modules/@vscode/test-electron/package.json').version")<br>echo "key=vscode-host-${RUNNER_OS}-${RUNNER_ARCH}-${E2E_VSCODE_VERSION}-test-electron-${test_electron}" >> "$GITHUB_OUTPUT"<span v-pre>; Acquire VS Code ${{ env.E2E_VSCODE_VERSION }}: source script block; </span>see linked job<span v-pre>; Run E2E tests (shard ${{ matrix.shard }}/${{ matrix.shard_count }}): </span>echo "Routes: ${E2E_ROUTES}"<br>xvfb-run -a pnpm --filter verter-vscode test:e2e:run.
  • build-native-node: Build native binding (release): pnpm run build:native.
  • native-test: Build TS packages: pnpm run build:ts; Test @verter/native: pnpm --filter @verter/native test; Test @verter/unplugin: pnpm --filter @verter/unplugin test; Native-eval @verter/component-meta: pnpm --filter @verter/component-meta test:native; Provision the oracle npm cache (framework-conformance-harness): node packages/framework-conformance-harness/scripts/provision-oracle-npm-cache.mjs; Workspace package suites no other lane runs: source script block; pnpm --no-bail --filter @verter/benchmark --filter @verter/component-meta --filter @verter/framework-conformance-harness --filter @verter/language-shared --filter @verter/lsp-test-client --filter @verter/proto --filter @verter/svelte-runtime-tests --filter @verter/type-ir --filter @verter/typeinfo --filter @verter/vue-conformance-oracle run test.
  • native-observe-test: Build instrumented native binding (semantic-observe, debug): pnpm --filter @verter/native build:observe:debug; Verify the binding captures: node -e "const a = require('./packages/native/index.js').captureAvailability(); if (a !== 'Available') { console.error('::error::instrumented binding reports capture ' + a); process.exit(1); }"; Build TS packages: pnpm run build:ts; Test @verter/native (capture available): pnpm --filter @verter/native test; Test @verter/typeinfo (capture available): pnpm --filter @verter/typeinfo test.
  • transport-route-equivalence: Syntax-check the WASM transport probe: node --check packages/wasm/scripts/probe-transport-surface.mjs; Syntax-check the native transport probe: node --check packages/native/scripts/probe-transport-surface.mjs; Execute native and WASM transport comparisons: source script block; cargo test -p verter_session --lib --features transport-authoritative \.
  • dx-harness-hermetic: Make debug LSP binaries executable: chmod +x target/debug/verter-lsp target/debug/verter-relay-shim target/debug/verter-mcp target/debug/verter-dx-baseline; Build DX harness: pnpm --filter "@verter/dx-harness..." build; Build the tsserver carrier-membership plugin: pnpm --filter @verter/language-shared --filter @verter/typescript-plugin build; DX harness hermetic unit suite: pnpm --filter @verter/dx-harness test:unit; Strict differential baseline gate: node scripts/dx/dx-ci-gate.mjs; Real-provider auto-import parity gate: pnpm --filter @verter/dx-harness exec vitest --run test/providerResolveParity.integration.test.ts; Verter raw-LSP spine smoke: node scripts/dx/dx-lsp-smoke.mjs; Verter raw-LSP spine smoke refuses a non-probe plugin path: source script block; see linked job.
  • build-editor-lsp: Build verter-lsp (release): cargo build -p verter_lsp --release.
  • editor-contracts: Make verter-lsp executable: chmod +x target/release/verter-lsp; Install neutral-client fixture dependencies: corepack enable<br>pnpm install --frozen-lockfile<br>npm ci --ignore-scripts --prefix editors/nvim/tests/fixtures/real-client<br>pnpm --filter @verter/lsp-test-client build; Install pinned Helix with checksum verification: source script block; see linked job [continue-on-error=true]; Provision the shipped Helix configuration and server: source script block; see linked job [if steps.helix-1.outcome == 'success'] [continue-on-error=true]; Prove Vue and Svelte select only the executable Verter server: source script block; see linked job [if steps.helix-2.outcome == 'success'] [continue-on-error=true]; Test the exported rootless Helix shipping plan: cargo test -p verter-editor-client --example helix_plan [if steps.helix-3.outcome == 'success'] [continue-on-error=true]; Drive the parsed Helix shipping plan over stdio: source script block; node --test scripts/editor-contracts/plan-contract.test.mjs ; cargo run --quiet -p verter-editor-client --example helix_plan -- "$bin" > "$plan" ; node scripts/editor-contracts/run-plan-smoke.mjs --plan="$plan" --root="$root" [if steps.helix-4.outcome == 'success'] [continue-on-error=true]; Build the volt (wasm32-wasip1): cargo build --manifest-path extensions/lapce/Cargo.toml --target wasm32-wasip1 --release [continue-on-error=true]; Run host-target unit tests (Lapce): cargo test --manifest-path extensions/lapce/Cargo.toml [if steps.lapce-1.outcome == 'success'] [continue-on-error=true]; Clippy (wasm32-wasip1): cargo clippy --manifest-path extensions/lapce/Cargo.toml --target wasm32-wasip1 -- -D warnings [if steps.lapce-2.outcome == 'success'] [continue-on-error=true]; Rustfmt check (Lapce): cargo fmt --check [if steps.lapce-3.outcome == 'success'] [continue-on-error=true]; Drive the exact Lapce launch plan over stdio: source script block; node --test scripts/editor-contracts/plan-contract.test.mjs ; cargo run --quiet --manifest-path extensions/lapce/Cargo.toml --example contract_plan -- "$root" "$bin" > "$plan" ; node scripts/editor-contracts/run-plan-smoke.mjs --plan="$plan" --root="$root" [if steps.lapce-4.outcome == 'success'] [continue-on-error=true]; Build the extension (wasm32-wasip2): cargo build --manifest-path extensions/zed/Cargo.toml --target wasm32-wasip2 --release [continue-on-error=true]; Run host-target unit tests (Zed): cargo test --manifest-path extensions/zed/Cargo.toml [if steps.zed-1.outcome == 'success'] [continue-on-error=true]; Clippy (wasm32-wasip2): cargo clippy --manifest-path extensions/zed/Cargo.toml --target wasm32-wasip2 -- -D warnings [if steps.zed-2.outcome == 'success'] [continue-on-error=true]; Rustfmt check (Zed): cargo fmt --check [if steps.zed-3.outcome == 'success'] [continue-on-error=true]; Drive the exact Zed launch plan over stdio: source script block; node --test scripts/editor-contracts/plan-contract.test.mjs ; cargo run --quiet --manifest-path extensions/zed/Cargo.toml --example contract_plan -- "$root" "$bin" > "$plan" ; node scripts/editor-contracts/run-plan-smoke.mjs --plan="$plan" --root="$root" [if steps.zed-4.outcome == 'success'] [continue-on-error=true]; Plenary verdict guard: node --test scripts/editor-contracts/plenary-outcome-guard.test.mjs [if steps.neovim-2.outcome == 'success'] [continue-on-error=true]; Run plenary busted suite: source script block; see linked job [if steps.neovim-3.outcome == 'success'] [continue-on-error=true]; Editor contracts verdict: source script block; see linked job [if always()].
  • jetbrains-plugin: Run the jetbrains-product gate (JVM tests, verifier, packaging): node scripts/jetbrains-gate.mjs.
  • release-check: reusable ./.github/workflows/release.yml; control/artifact steps; see linked source.
  • release-ide-check: reusable ./.github/workflows/release-ide.yml; control/artifact steps; see linked source.
  • ci-success: Verify no dependency failed: source script block; see linked job.

Corpus Gate (corpus-gate.yml) ​

Source: corpus-gate.yml.

Triggers and input defaults: {"schedule":[{"cron":"0 3 * * 1"}],"workflow_dispatch":{"inputs":{"corpus_repo":{"type":"string","default":"","required":false},"corpus_ref":{"type":"string","default":"main","required":false},"corpus_subdir":{"type":"string","default":".","required":false},"sample_size":{"type":"string","default":"40","required":false},"fast_mode":{"type":"boolean","default":false,"required":false}}}}.

Concurrency: {"group":"corpus-gate-${{ github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
corpus-gate.yml / builddefault[]ubuntu-latest / 60single
corpus-gate.yml / routedefaultbuildubuntu-latest / 60{"fail-fast":false,"matrix":{"route":["tsserver","tsgo","shared-tsgo"]}}
corpus-gate.yml / summaryalways() && inputs.corpus_repo != ''routeubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • build: Build verter-lsp: cargo build -p verter_lsp; Build verter-relay-shim (shared-tsgo route): cargo build -p verter_relay_shim; Build TypeScript plugin (tsserver route): pnpm --filter "@verter/typescript-plugin..." build; Build DX harness: pnpm --filter "@verter/dx-harness..." build; Stage the fan-out artifact: source script block; see linked job.
  • route: Restore the prebuilt binaries and dists: source script block; see linked job; Run the corpus gate for this route: pnpm --filter @verter/dx-harness test:corpus-gate.
  • summary: Build DX harness: pnpm --filter "@verter/dx-harness..." build; Merge shard receipts and report actual-vs-budget: node packages/dx-harness/scripts/corpus-gate-summary.mjs \<br> "${{ runner.temp }}/corpus-gate-receipts" \<br> "tsserver,tsgo,shared-tsgo" \<br> "${{ env.CORPUS_GATE_BUDGET_MS }}".

DX Extended (dx-extended.yml) ​

Source: dx-extended.yml.

Triggers and input defaults: {"schedule":[{"cron":"0 5 * * 1"}],"workflow_dispatch":{"inputs":{"external_corpus_repo":{"type":"string","default":"","required":false},"external_corpus_ref":{"type":"string","default":"main","required":false},"external_corpus_subdir":{"type":"string","default":".","required":false}}}}.

Concurrency: {"group":"dx-extended-${{ github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
dx-extended.yml / extension-host-dxdefault[]ubuntu-latest / 60single
dx-extended.yml / corpus-sweep-dxdefault[]ubuntu-latest / 60single
dx-extended.yml / external-corpus-dxgithub.event_name == 'workflow_dispatch' && inputs.external_corpus_repo != ''[]ubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • extension-host-dx: Build DX harness: pnpm --filter "@verter/dx-harness..." build; Extension-host DX unit suite: pnpm --filter verter-vscode test:e2e:dx:unit.
  • corpus-sweep-dx: Build differential-baseline bridge: cargo build -p verter_dx_baseline; Build verter-lsp: cargo build -p verter_lsp; Build DX harness: pnpm --filter "@verter/dx-harness..." build; Raw-LSP corpus sweep: pnpm --filter @verter/dx-harness exec vitest --run test/dxCorpusSweep.run.test.ts.
  • external-corpus-dx: Build differential-baseline bridge: cargo build -p verter_dx_baseline; Build DX harness: pnpm --filter "@verter/dx-harness..." build; External-corpus DX differential: node scripts/dx/dx-ci-gate.mjs.

Editor packages (editor-packages.yml) ​

Source: editor-packages.yml.

Triggers and input defaults: {"workflow_call":null,"pull_request":{"paths":[".github/workflows/editor-packages.yml",".github/workflows/release-ide.yml","scripts/package-editor-integrations*.mjs","extensions/lapce/**","extensions/zed/**","editors/nvim/**","editors/helix/**","crates/verter-editor-client/**","packages/vue-vscode/package.json","rust-toolchain.toml","LICENSE"]}}.

Concurrency: none declared. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
editor-packages.yml / packagedefault[]ubuntu-latest / 25single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • package: Test packaging: node --test scripts/package-editor-integrations.test.mjs; Build Lapce volt and Zed extension: cargo build --locked --manifest-path extensions/lapce/Cargo.toml --target wasm32-wasip1 --release<br>cargo build --locked --manifest-path extensions/zed/Cargo.toml --target wasm32-wasip2 --release; Package editor integrations: node scripts/package-editor-integrations.mjs --output /tmp/editor-integrations.

Integration Test (integration-test.yml) ​

Source: integration-test.yml.

Triggers and input defaults: {"workflow_dispatch":{"inputs":{"source":{"type":"choice","default":"artifact","required":true,"options":["artifact","npm"]},"dist-tag":{"type":"string","default":"alpha","required":false},"projects":{"type":"string","default":"all","required":false}}},"workflow_call":{"inputs":{"source":{"type":"string","required":true},"dist-tag":{"type":"string","default":"alpha","required":false}}},"issue_comment":{"types":["created"]}}.

Concurrency: {"group":"integration-test-${{ github.event.issue.number &#124;&#124; github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read","issues":"write","pull-requests":"write","checks":"write"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
integration-test.yml / check-triggergithub.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/integration')[]ubuntu-latest / 45single
integration-test.yml / setupalways() &&<br>(github.event_name != 'issue_comment' &#124;&#124; <br> (needs.check-trigger.result != 'skipped' && needs.check-trigger.outputs.should-run == 'true'))<br>["check-trigger"]ubuntu-latest / 45single
integration-test.yml / test-projectalways() && needs.setup.result == 'success'["setup"]ubuntu-latest / 30{"fail-fast":false,"matrix":{"project":[{"name":"vuetify","repo":"vuetifyjs/vuetify","branch":"master","build-cmd":"pnpm --filter vuetify build && pnpm --filter vuetifyjs.com build","test-cmd":"","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"oku-primitives","repo":"oku-ui/primitives","branch":"main","build-cmd":"pnpm run build","test-cmd":"pnpm run test","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"hoppscotch","repo":"hoppscotch/hoppscotch","branch":"main","build-cmd":"pnpm --filter @hoppscotch/selfhost-web build","test-cmd":"pnpm --filter @hoppscotch/common test","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"element-plus","repo":"element-plus/element-plus","branch":"dev","build-cmd":"pnpm run build","test-cmd":"","e2e-cmd":"","package-manager":"pnpm","bundler":"rollup"},{"name":"coreui","repo":"coreui/coreui-free-vue-admin-template","branch":"main","build-cmd":"npm run build","test-cmd":"","e2e-cmd":"","package-manager":"npm","bundler":"vite"},{"name":"balancer-frontend-v2","repo":"balancer/frontend-v2","branch":"develop","build-cmd":"npm run build:withouttokenlists","test-cmd":"npm run test:unit","e2e-cmd":"","package-manager":"npm","bundler":"vite"},{"name":"shadcn-vue","repo":"unovue/shadcn-vue","branch":"dev","build-cmd":"pnpm --filter shadcn-vue build","test-cmd":"pnpm --filter shadcn-vue test","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"slidev","repo":"slidevjs/slidev","branch":"main","build-cmd":"pnpm -r --filter=\"./packages/**\" --parallel run build","test-cmd":"pnpm run test","e2e-cmd":"DEV_LOG=/tmp/slidev-dev.log; pnpm -C cypress/fixtures/basic run dev > \"$DEV_LOG\" 2>&1 & DEV_PID=$!; sleep 15 && npx cypress run --headless; EXIT=$?; echo \"--- Dev server log ---\"; cat \"$DEV_LOG\" 2>/dev/null &#124;&#124; true; kill $DEV_PID 2>/dev/null; wait $DEV_PID 2>/dev/null; exit $EXIT","package-manager":"pnpm","bundler":"vite"},{"name":"zyronon-douyin","repo":"zyronon/douyin","branch":"master","build-cmd":"pnpm run build","test-cmd":"","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"primevue","repo":"primefaces/primevue","branch":"master","build-cmd":"pnpm run build:metadata && pnpm run build:resolver && pnpm run build:core && pnpm run build:lib","test-cmd":"","e2e-cmd":"","package-manager":"pnpm","bundler":"rollup"},{"name":"ant-design-vue","repo":"vueComponent/ant-design-vue","branch":"main","build-cmd":"npm run build","test-cmd":"npm run test","e2e-cmd":"","package-manager":"npm","bundler":"vite"},{"name":"nuxt-ui","repo":"nuxt/ui","branch":"v4","build-cmd":"pnpm nuxt-module-build prepare && pnpm build","test-cmd":"pnpm test","e2e-cmd":"","package-manager":"pnpm","bundler":"nuxt"},{"name":"vue-vben-admin","repo":"vbenjs/vue-vben-admin","branch":"main","build-cmd":"pnpm build","test-cmd":"","e2e-cmd":"pnpm run test:e2e","playwright-browsers":"chromium","package-manager":"pnpm","bundler":"vite"},{"name":"vant","repo":"youzan/vant","branch":"main","build-cmd":"pnpm build","test-cmd":"pnpm test","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"naive-ui","repo":"tusen-ai/naive-ui","branch":"main","build-cmd":"pnpm build:package","test-cmd":"pnpm vitest run","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"tdesign-vue-next","repo":"Tencent/tdesign-vue-next","branch":"develop","build-cmd":"pnpm run build:vue","test-cmd":"pnpm run test:vue","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"radix-vue","repo":"unovue/radix-vue","branch":"v2","build-cmd":"pnpm --filter reka-ui build","test-cmd":"pnpm --filter reka-ui test","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"vitepress","repo":"vuejs/vitepress","branch":"main","build-cmd":"pnpm build","test-cmd":"pnpm test:unit","e2e-cmd":"pnpm test:e2e-dev","playwright-browsers":"chromium","package-manager":"pnpm","bundler":"vite"},{"name":"vue-router","repo":"vuejs/router","branch":"main","build-cmd":"pnpm -C packages/router build","test-cmd":"pnpm -C packages/router test:unit","e2e-cmd":"","package-manager":"pnpm","bundler":"vite"},{"name":"npmx","repo":"npmx-dev/npmx.dev","branch":"main","build-cmd":"pnpm run build","test-cmd":"pnpm run test:unit","e2e-cmd":"pnpm run test:browser","playwright-browsers":"chromium","package-manager":"pnpm","bundler":"nuxt","shallow":false}]}}
integration-test.yml / summaryalways() && needs.setup.result == 'success'["setup","test-project"]ubuntu-latest / 45single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • check-trigger: Check comment trigger: source script block; see linked job.
  • setup: Determine source: source script block; see linked job; Build native (production): pnpm run build:native [if steps.source.outputs.source == 'artifact']; Build unplugin: pnpm --filter @verter/unplugin build [if steps.source.outputs.source == 'artifact']; Build nuxt module: pnpm --filter @verter/nuxt build [if steps.source.outputs.source == 'artifact']; Create local registry tarball: source script block; see linked job [if steps.source.outputs.source == 'artifact']; Save source info: echo "source=${{ steps.source.outputs.source }}" >> source-info.txt<br>echo "dist_tag=${{ steps.source.outputs.dist-tag }}" >> source-info.txt.
  • test-project: Read source info: source source-info.txt<br>echo "source=$source" >> $GITHUB_OUTPUT<br>echo "dist-tag=$dist_tag" >> $GITHUB_OUTPUT; Configure hoist pattern for Verter: source script block; see linked job [if matrix.project.package-manager == 'pnpm']; Normalize packageManager and engines.pnpm fields: source script block; node -e "; Install project dependencies: source script block; node -e " ; pnpm install --no-frozen-lockfile ; npm install --legacy-peer-deps; Baseline build: source script block; see linked job [continue-on-error=true]; Baseline tests: source script block; see linked job [continue-on-error=true]; Install Verter packages (from tarballs): source script block; node -e " ; npm install --legacy-peer-deps $INSTALL_PKGS ; node -e " ; npm install --legacy-peer-deps [if steps.source.outputs.source == 'artifact']; Install Verter packages (from npm): source script block; pnpm add $PNPM_W @verter/unplugin@${{ steps.source.outputs.dist-tag }} $EXTRA_PKGS ; npm install --legacy-peer-deps @verter/unplugin@${{ steps.source.outputs.dist-tag }} $EXTRA_PKGS [if steps.source.outputs.source == 'npm']; Replace vue plugin with verter in build configs: source script block; pnpm install --no-frozen-lockfile ; npm install --legacy-peer-deps; Verify Verter plugin replacement: source script block; see linked job; Verter build: source script block; see linked job [continue-on-error=true]; Verter tests: source script block; see linked job [continue-on-error=true]; Resolve Playwright version: echo "version=$(npx playwright --version &#124; sed -n 's/^Version //p' &#124; tail -1)" >> "$GITHUB_OUTPUT" [if matrix.project.playwright-browsers] [continue-on-error=true]; Install Playwright browsers: npx playwright install ${{ matrix.project.playwright-browsers }} --with-deps [if matrix.project.playwright-browsers && steps.playwright-cache.outputs.cache-hit != 'true'] [continue-on-error=true]; Install Playwright system dependencies: npx playwright install-deps ${{ matrix.project.playwright-browsers }} [if steps.playwright-cache.outputs.cache-hit == 'true'] [continue-on-error=true]; Verter E2E tests: source script block; see linked job [if matrix.project.e2e-cmd != ''] [continue-on-error=true]; Generate project report: source script block; see linked job [if always()]; Add to job summary: cat report-${{ matrix.project.name }}.md >> $GITHUB_STEP_SUMMARY [if always()].
  • summary: Generate aggregate summary: source script block; see linked job; Add to workflow summary: cat integration-test-summary.md >> $GITHUB_STEP_SUMMARY; Post PR comment (if triggered from PR): source script block; see linked job [if github.event_name == 'issue_comment'].

LSP Benchmark (lsp-benchmark.yml) ​

Source: lsp-benchmark.yml.

Triggers and input defaults: {"workflow_dispatch":{"inputs":{"ref":{"default":"main","required":false},"save-results":{"type":"boolean","default":false,"required":false}}},"issue_comment":{"types":["created"]}}.

Concurrency: {"group":"lsp-benchmark-${{ github.event.issue.number &#124;&#124; github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"write"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
lsp-benchmark.yml / check-triggergithub.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '/lsp-benchmark')[]ubuntu-latest / 60single
lsp-benchmark.yml / lsp-benchmarkalways() &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124;<br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>check-trigger${{ matrix.runner }} / 45{"fail-fast":false,"matrix":{"include":[{"runner":"ubuntu-latest","os-key":"linux","os-label":"Linux"},{"runner":"macos-13","os-key":"macos","os-label":"macOS"},{"runner":"windows-latest","os-key":"windows","os-label":"Windows"}]}}
lsp-benchmark.yml / reportalways() &&<br>needs.lsp-benchmark.result != 'cancelled' &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124;<br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>["check-trigger","lsp-benchmark"]ubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • check-trigger: Check comment author: source script block; see linked job; Get PR details: source script block; see linked job [if steps.check.outputs.should-run == 'true'].
  • lsp-benchmark: Determine checkout ref: source script block; see linked job; Build @verter/lsp-test-client: pnpm --filter @verter/lsp-test-client build; Build LSP binary (release): cargo build --release -p verter_lsp; Clone PrimeVue: git clone --depth 1 https://github.com/primefaces/primevue.git test-project; Run LSP benchmark: source script block; pnpm --silent --filter @verter/benchmark bench:lsp:json \.
  • report: Determine checkout ref: source script block; see linked job; Generate report: source script block; node scripts/lsp-benchmark-report.mjs \; Save results to branch: source script block; see linked job [if github.event_name == 'workflow_dispatch' && inputs.save-results == true]; Post PR comment: const comment = &#96;${{ steps.generate-report.outputs.comment }}&#96;;<br><br>await github.rest.issues.createComment({<br> owner: context.repo.owner,<br> repo: context.repo.repo,<br> issue_number: ${{ needs.check-trigger.outputs.pr-number }},<br> body: comment<br>}); [if github.event_name == 'issue_comment' && needs.check-trigger.outputs.pr-number]; Create check run: source script block; see linked job [if github.event_name == 'issue_comment' && needs.check-trigger.outputs.pr-sha]; Summary: cat lsp-benchmark-comment.md >> "$GITHUB_STEP_SUMMARY".

Component Meta Benchmark (meta-benchmark.yml) ​

Source: meta-benchmark.yml.

Triggers and input defaults: {"workflow_dispatch":{"inputs":{"ref":{"default":"main","required":false}}},"issue_comment":{"types":["created"]}}.

Concurrency: {"group":"meta-benchmark-${{ github.event.issue.number &#124;&#124; github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"write"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
meta-benchmark.yml / check-triggergithub.event_name == 'issue_comment' && github.event.issue.pull_request && contains(github.event.comment.body, '/meta-benchmark')[]ubuntu-latest / 60single
meta-benchmark.yml / resolve-targetalways() &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124;<br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>check-triggerubuntu-latest / 60single
meta-benchmark.yml / build-verteralways() &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124;<br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>["check-trigger","resolve-target"]ubuntu-latest / 30single
meta-benchmark.yml / expected-baselinealways() &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124;<br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>["check-trigger","resolve-target"]ubuntu-latest / 45single
meta-benchmark.yml / benchmarkalways() &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124;<br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>["check-trigger","resolve-target","build-verter","expected-baseline"]ubuntu-latest / 45{"fail-fast":false,"matrix":{"backend":["vue-component-meta","verter","tsserver","tsgo"],"scenario":["single_cold","single_warm","repo_first_pass","repo_warm_second_pass"]}}
meta-benchmark.yml / reportalways() &&<br>needs.benchmark.result != 'cancelled' &&<br>(github.event_name == 'workflow_dispatch' &#124;&#124;<br> (github.event_name == 'issue_comment' && needs.check-trigger.outputs.should-run == 'true'))<br>["check-trigger","resolve-target","benchmark"]ubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • check-trigger: Check comment author: source script block; see linked job; Get PR details: source script block; see linked job [if steps.check.outputs.should-run == 'true'].
  • resolve-target: Resolve latest nuxt-ui SHA: source script block; see linked job.
  • build-verter: Determine checkout ref: source script block; see linked job; Build native package: pnpm --filter @verter/native build; Build component-meta: pnpm --filter @verter/component-meta build.
  • expected-baseline: Determine checkout ref: source script block; see linked job; Prepare pinned nuxt-ui checkout: pnpm --filter @verter/benchmark bench:meta:ui:setup -- --ref=${{ needs.resolve-target.outputs.target-sha }}; Build vue-component-meta expected artifacts: pnpm --filter @verter/benchmark bench:meta:ui -- \<br> --backends=vue-component-meta \<br> --expected=vue-component-meta \<br> --expected-dir=packages/benchmark/benchmark-results/meta-ui-expected \<br> --build-expected-only.
  • benchmark: Determine checkout ref: source script block; see linked job; Prepare pinned nuxt-ui checkout: pnpm --filter @verter/benchmark bench:meta:ui:setup -- --ref=${{ needs.resolve-target.outputs.target-sha }}; Prewarm tsgo: pnpm --filter @verter/benchmark bench:meta:ui:json -- \<br> --backends=tsgo \<br> --scenarios=single_cold \<br> --limit=1 \<br> --repeats=1 \<br> --expected=none \<br> --output-dir=packages/benchmark/benchmark-results/meta-ui-prewarm > /dev/null [if matrix.backend == 'tsgo']; Run meta-ui benchmark: source script block; pnpm --filter @verter/benchmark bench:meta:ui -- \.
  • report: Determine checkout ref: source script block; see linked job; Generate aggregate report: source script block; pnpm --filter @verter/benchmark bench:meta:ui:report -- \; Post PR comment: const comment = &#96;${{ steps.generate-report.outputs.comment }}&#96;;<br>await github.rest.issues.createComment({<br> owner: context.repo.owner,<br> repo: context.repo.repo,<br> issue_number: ${{ needs.check-trigger.outputs.pr-number }},<br> body: comment<br>}); [if github.event_name == 'issue_comment' && needs.check-trigger.outputs.pr-number]; Create check run: source script block; see linked job [if github.event_name == 'issue_comment' && needs.check-trigger.outputs.pr-sha]; Summary: cat meta-ui-benchmark-comment.md >> "$GITHUB_STEP_SUMMARY".

Nightly (nightly.yml) ​

Source: nightly.yml.

Triggers and input defaults: {"schedule":[{"cron":"0 6 * * *"}],"workflow_dispatch":null}.

Concurrency: {"group":"nightly","cancel-in-progress":true}. Permissions: {"contents":"write"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
nightly.yml / compiler-contractsdefault[]ubuntu-latest / 95{"fail-fast":false,"matrix":{"group":["core","compiler","session","session-observe"]}}
nightly.yml / build-and-deploydefault[]ubuntu-latest / 60single
nightly.yml / rust-observedefault[]ubuntu-latest / 95single
nightly.yml / rust-scale-tierdefault[]ubuntu-latest / 90single
nightly.yml / rust-coverage-lanedefault[]ubuntu-latest / 75{"fail-fast":false,"matrix":{"include":[{"lane":"core"},{"lane":"tsgo","require":"VERTER_REQUIRE_TSGO"},{"lane":"tsserver","require":"VERTER_REQUIRE_TSSERVER"}]}}
nightly.yml / rust-coverage${{ !cancelled() }}rust-coverage-laneubuntu-latest / 10single
nightly.yml / svelte-compiler-benchmarkdefault[]ubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • compiler-contracts: Verify compiler contracts lane and cache ownership: node --test scripts/compiler-ci-lane-selftest.mjs; Run workspace compile contracts: node scripts/compile-contracts.mjs --group ${{ matrix.group }} 2>&1 &#124; tee compile-contracts-${{ matrix.group }}.log; Verify generated Svelte artifacts: cargo test --package verter_compiler --test main cases::svelte_generated_artifacts_freshness::generated_svelte_artifacts_match_their_authoritative_inputs -- --exact [if matrix.group == 'compiler']; verter_compiler default feature-off build + lib tests (isolated): cargo build -p verter_compiler<br>cargo test -p verter_compiler --lib [if matrix.group == 'compiler'].
  • build-and-deploy: Build WASM: pnpm --filter @verter/wasm build; Smoke test WASM: node -e "const fs = require('fs'); const wasm = fs.readFileSync('packages/wasm/wasm/verter_wasm_bg.wasm'); console.log('WASM size:', wasm.length, 'bytes'); if (wasm.length < 1000) throw new Error('WASM too small');"; Upload WASM to nightly release: source script block; see linked job; Update nightly manifest: source script block; node -e "; Cleanup old nightly assets: source script block; see linked job.
  • rust-observe: Fetch locked Cargo dependencies: cargo fetch --locked; Run the instrumentation lane: node scripts/ci-junit-metadata.mjs snapshot-env --out "$RUNNER_TEMP/nextest-env.json"<br>argv="$(node scripts/observe-lane.mjs args)"<br>echo "argv=$argv" >> "$GITHUB_OUTPUT"<br>node scripts/observe-lane.mjs run; Locate nextest JUnit report: found=$(find target -type f -path '*/nextest/ci/junit.xml' -print -quit)<br>if [ -z "$found" ]; then<br> echo "::error::nextest ci junit.xml not found — the test report would be silently empty"<br> exit 1<br>fi<br>echo "path=$found" >> "$GITHUB_OUTPUT" [if always()].
  • rust-scale-tier: Run the nightly scale tier: node scripts/compile-fixture-artifacts.mjs prepare --workspace<br>cargo nextest run --workspace --no-fail-fast -E "$(node scripts/provider-ci.mjs filter core)".
  • rust-coverage-lane: Build the language-shared and plugin prerequisites: pnpm --filter @verter/language-shared --filter @verter/typescript-plugin build [if matrix.lane != 'core']; Generate coverage: source script block; node scripts/ci-junit-metadata.mjs snapshot-env --out "$RUNNER_TEMP/nextest-env.json" ; cargo llvm-cov clean --workspace ; node scripts/compile-fixture-artifacts.mjs prepare --workspace &#124;&#124; status=1 ; cargo "${nextest_argv[@]}" &#124;&#124; status=1 ; cargo llvm-cov report --lcov --output-path "lcov-$LANE.info" &#124;&#124; status=1.
  • rust-coverage: Merge lane coverage: cat lanes/lcov-core.info lanes/lcov-tsgo.info lanes/lcov-tsserver.info > lcov.info; Fail unless every lane succeeded: echo "::error::a coverage lane did not succeed: ${{ needs.rust-coverage-lane.result }}"<br>exit 1 [if needs.rust-coverage-lane.result != 'success'].
  • svelte-compiler-benchmark: Verify benchmark corpus against official Svelte goldens: node scripts/gen-svelte-goldens.mjs --check; Build native binding (release): pnpm run build:native; Compare Verter and official Svelte compilers: mkdir -p "$GITHUB_WORKSPACE/artifacts"<br>pnpm --filter @verter/benchmark bench:svelte:compiler -- \<br> --json \<br> --require-immutable \<br> --out="$GITHUB_WORKSPACE/artifacts/svelte-compiler-benchmark.json"; Ensure benchmark artifact exists: source script block; see linked job [if always()].

Perf Gate (perf-gate.yml) ​

Source: perf-gate.yml.

Triggers and input defaults: {"schedule":[{"cron":"0 5 * * *"}],"workflow_dispatch":{"inputs":{"baseline-ref":{"default":"","required":false},"samples":{"default":"7","required":false}}},"pull_request":{"paths":["packages/benchmark/src/perf/**","packages/benchmark/baselines/**","test-corpora/perf/**",".github/workflows/perf-gate.yml"]}}.

Concurrency: {"group":"perf-gate-${{ github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
perf-gate.yml / perf-harness-correctnessgithub.event_name == 'pull_request'[]ubuntu-latest / 60single
perf-gate.yml / perf-gate-nightlygithub.event_name != 'pull_request'[]ubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • perf-harness-correctness: Build and verify perf harness imports: pnpm --filter @verter/lsp-test-client build<br>pnpm --filter @verter/benchmark exec node --import tsx -e 'await import("./src/perf/lsp-driver.ts")'; Perf harness unit specs: source script block; pnpm --filter @verter/benchmark exec vitest run src/perf/stats.spec.ts src/perf/gate.spec.ts src/perf/baseline.spec.ts src/perf/corpus.spec.ts src/perf/lsp-driver.spec.ts src/perf/lsp-binary-resolution.spec.ts src/perf/workloads.spec.ts src/perf/run.spec.ts src/perf/axis-a-child.spec.ts src/perf/audit-attribution.spec.ts src/perf/vize-bench.spec.ts; Corpus manifest hash check: source script block; see linked job.
  • perf-gate-nightly: Validate samples floor: source script block; see linked job; Build and verify perf harness imports: pnpm --filter @verter/lsp-test-client build<br>pnpm --filter @verter/benchmark exec node --import tsx -e 'await import("./src/perf/lsp-driver.ts")'; Resolve baseline ref: pnpm --filter @verter/benchmark exec node --import tsx src/perf/baseline.ts; Build candidate (native + verter-tsc + verter_lsp): pnpm --filter @verter/native build:observe<br>cargo build --release -p verter_tsc -p verter_lsp<br>mkdir -p artifacts/candidate-bin<br>cp target/release/verter-tsc artifacts/candidate-bin/<br>cp target/release/verter-lsp artifacts/candidate-bin/; Build baseline (resolved ref — native + verter-tsc + verter_lsp): source script block; pnpm install --frozen-lockfile ; pnpm --filter @verter/native build:observe ; pnpm run build:native; Run self-referential perf gate: source script block; pnpm --filter @verter/benchmark exec node --import tsx src/perf/gate.ts \; Ensure a perf-gate artifact exists: source script block; see linked job [if always()].

Perturbation (perturbation.yml) ​

Source: perturbation.yml.

Triggers and input defaults: {"schedule":[{"cron":"30 2 * * 0"}],"workflow_dispatch":null,"pull_request":{"paths":[".github/workflows/perturbation.yml",".github/actions/nextest-evidence/**","scripts/perturbation.mjs","scripts/ci-junit-metadata.mjs","scripts/lib/hermetic-list.mjs","scripts/manifests/perturbation.json","scripts/manifests/ci-hermetic-candidates.json"]},"push":{"branches-ignore":["main"],"paths":[".github/workflows/perturbation.yml",".github/actions/nextest-evidence/**","scripts/perturbation.mjs","scripts/ci-junit-metadata.mjs","scripts/lib/hermetic-list.mjs","scripts/manifests/perturbation.json","scripts/manifests/ci-hermetic-candidates.json"]}}.

Concurrency: {"group":"perturbation-${{ github.event_name }}-${{ github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
perturbation.yml / plandefault[]ubuntu-latest / 5single
perturbation.yml / builddefault[]ubuntu-latest / 95single
perturbation.yml / rerundefault["plan","build"]ubuntu-latest / 95{"fail-fast":false,"matrix":{"rerun":"${{ fromJSON(needs.plan.outputs.reruns) }}"}}
perturbation.yml / comparealways() && needs.plan.result == 'success'["plan","rerun"]ubuntu-latest / 15single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • plan: Check the candidate list: node scripts/perturbation.mjs check-list; Read the configured reruns: echo "reruns=$(node scripts/perturbation.mjs plan)" >> "$GITHUB_OUTPUT".
  • build: Build the Rust test archive: mkdir -p artifacts<br>node scripts/run-cached.mjs -- 'node scripts/compile-fixture-artifacts.mjs archive --workspace --archive-file artifacts/rust-nextest-archive.tar.zst'.
  • rerun: Fetch locked Cargo dependencies: cargo fetch --locked; Build libfaketime: source script block; see linked job; Run the core suite perturbed: source script block; node scripts/perturbation.mjs run "${run_args[@]}" -- cargo "${nextest_argv[@]}".
  • compare: Compare the reruns per test: set -o pipefail<br>mkdir -p comparison<br>node scripts/perturbation.mjs compare --input artifacts \<br> --out comparison/perturbation-comparison.json \<br> --proposed comparison/ci-hermetic-candidates.proposed.json \<br> &#124; tee -a "$GITHUB_STEP_SUMMARY".

Release Check (release-check.yml) ​

Source: release-check.yml.

Triggers and input defaults: {"workflow_dispatch":null,"pull_request":{"paths":[".github/workflows/release.yml",".github/workflows/release-check.yml",".github/workflows/integration-test.yml","scripts/check-versions.mjs","scripts/verify-packages.mjs","scripts/bump.mjs","packages/vue-vscode/package.mjs","scripts/githubctl/clean-room.mjs","scripts/githubctl/tests/clean-room.test.mjs","scripts/lib/publish-set.mjs"]}}.

Concurrency: {"group":"release-check-${{ github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
release-check.yml / pull-request-contractgithub.event_name == 'pull_request'[]ubuntu-latest / 15single
release-check.yml / dry-rungithub.event_name == 'workflow_dispatch'[]callee / default./.github/workflows/release.yml inputs={"dry_run":true}

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • pull-request-contract: Validate release workflow and package contracts: pnpm --filter verter-vscode exec vitest run src/releasePackaging.spec.ts; Validate release rehearsal control plane: node --test scripts/githubctl/tests/clean-room.test.mjs.
  • dry-run: reusable ./.github/workflows/release.yml; control/artifact steps; see linked source.

Release IDE (release-ide.yml) ​

Source: release-ide.yml.

Triggers and input defaults: {"push":{"tags":["ide/v*"]},"workflow_call":{"inputs":{"dry_run":{"type":"boolean","default":true}}},"workflow_dispatch":{"inputs":{"dry_run":{"type":"boolean","default":true}}}}.

Concurrency: {"group":"release-ide-${{ github.ref }}","cancel-in-progress":false}. Permissions: {"contents":"write","actions":"read","pull-requests":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
release-ide.yml / validatedefault[]ubuntu-latest / 15single
release-ide.yml / build-lspneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"target":"x86_64-unknown-linux-gnu","os":"ubuntu-22.04","npm-pkg":"linux-x64-gnu","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"x86_64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-x64-musl","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"aarch64-unknown-linux-gnu","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-gnu","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"aarch64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-musl","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"x86_64-apple-darwin","os":"macos-15-intel","npm-pkg":"darwin-x64","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"aarch64-apple-darwin","os":"macos-15","npm-pkg":"darwin-arm64","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"x86_64-pc-windows-msvc","os":"windows-latest","npm-pkg":"win32-x64-msvc","binary":"verter-lsp.exe","shim-binary":"verter-relay-shim.exe"}]}}
release-ide.yml / build-mcpneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"target":"x86_64-unknown-linux-gnu","os":"ubuntu-22.04","npm-pkg":"linux-x64-gnu","binary":"verter-mcp"},{"target":"x86_64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-x64-musl","binary":"verter-mcp"},{"target":"aarch64-unknown-linux-gnu","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-gnu","binary":"verter-mcp"},{"target":"aarch64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-musl","binary":"verter-mcp"},{"target":"x86_64-apple-darwin","os":"macos-15-intel","npm-pkg":"darwin-x64","binary":"verter-mcp"},{"target":"aarch64-apple-darwin","os":"macos-15","npm-pkg":"darwin-arm64","binary":"verter-mcp"},{"target":"x86_64-pc-windows-msvc","os":"windows-latest","npm-pkg":"win32-x64-msvc","binary":"verter-mcp.exe"}]}}
release-ide.yml / build-nativeneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"target":"x86_64-unknown-linux-gnu","os":"ubuntu-22.04"},{"target":"aarch64-unknown-linux-gnu","os":"ubuntu-latest","use-cross":true},{"target":"x86_64-apple-darwin","os":"macos-15-intel"},{"target":"aarch64-apple-darwin","os":"macos-15"},{"target":"x86_64-pc-windows-msvc","os":"windows-latest"}]}}
release-ide.yml / build-vsixneeds.validate.outputs.dry-run == 'true'["validate","build-lsp","build-mcp","build-native"]ubuntu-latest / 40single
release-ide.yml / build-editor-integrationsneeds.validate.outputs.dry-run == 'true'["validate"]callee / default./.github/workflows/editor-packages.yml
release-ide.yml / publish-vscodeneeds.validate.outputs.dry-run != 'true'validateubuntu-latest / 20single
release-ide.yml / github-releaseneeds.validate.outputs.dry-run != 'true'validateubuntu-latest / 20single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • validate: source script block; see linked job; Verify the version is complete: node scripts/set-ide-version.mjs --check "${{ steps.check.outputs.version }}"; Release proof: node scripts/release-proof.mjs --sha "$GITHUB_SHA" --title-prefix "release(ide): " --rehearsal "Release IDE Check" --artifacts "lsp-*,mcp-*,native-*,vsix,editor-integrations" [if steps.check.outputs.dry-run != 'true'].
  • build-lsp: Build editor binaries: source script block; cargo zigbuild --release --package verter_lsp --package verter_relay_shim --target ${{ matrix.target }} ; cargo build --release --package verter_lsp --package verter_relay_shim --target ${{ matrix.target }}.
  • build-mcp: Build verter-mcp binary: if [ "${{ matrix.use-cross }}" = "true" ]; then<br> cargo zigbuild --release --package verter_mcp --bin verter-mcp --target ${{ matrix.target }}<br>else<br> cargo build --release --package verter_mcp --bin verter-mcp --target ${{ matrix.target }}<br>fi.
  • build-native: Build native: source script block; npx napi build -o dist --dts napi.generated.d.ts --platform --release --manifest-path ../../crates/verter_napi/Cargo.toml --target ${{ matrix.target }} --cross-compile ; npx napi build -o dist --dts napi.generated.d.ts --platform --release --manifest-path ../../crates/verter_napi/Cargo.toml --target ${{ matrix.target }}.
  • build-vsix: Build TS packages: pnpm run build:ts; Package VSIX: source script block; node package.mjs --target "$platform".
  • build-editor-integrations: reusable ./.github/workflows/editor-packages.yml; control/artifact steps; see linked source.
  • publish-vscode: Publish VSIXes to the Marketplace: source script block; pnpm exec vsce publish --packagePath "$vsix".
  • github-release: Stage release assets: source script block; see linked job; Write release notes: source script block; see linked job; Create GitHub Release: TAG="${GITHUB_REF_NAME}"<br>gh release create "$TAG" \<br> --title "Editors ${{ needs.validate.outputs.version }}" \<br> --notes-file /tmp/RELEASE_NOTES.md \<br> /tmp/release-assets/staged/*.

release-tag (release-tag.yml) ​

Source: release-tag.yml.

Triggers and input defaults: {"push":{"branches":["main"]}}.

Concurrency: {"group":"release-tag-${{ github.ref }}","cancel-in-progress":false}. Permissions: {"contents":"write"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
release-tag.yml / tagdefault[]ubuntu-latest / 20single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • tag: Detect a version commit: source script block; see linked job; Verify the version is complete: node scripts/release-lanes.mjs verify "${{ steps.detect.outputs.lane &#124;&#124; '-' }}" "${{ steps.detect.outputs.version }}" [if steps.detect.outputs.tag != '']; Create and push the tag: git config user.name "github-actions[bot]"<br>git config user.email "github-actions[bot]@users.noreply.github.com"<br>git tag -a "${{ steps.detect.outputs.tag }}" -m "$(git log -1 --format=%s)"<br>git push origin "${{ steps.detect.outputs.tag }}" [if steps.detect.outputs.tag != ''].

Release (release.yml) ​

Source: release.yml.

Triggers and input defaults: {"push":{"tags":["v*"]},"workflow_call":{"inputs":{"dry_run":{"type":"boolean","default":false}}}}.

Concurrency: {"group":"release-${{ github.ref }}","cancel-in-progress":false}. Permissions: {"contents":"write","id-token":"write","deployments":"write","actions":"read","pull-requests":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
release.yml / validatedefault[]ubuntu-latest / 25single
release.yml / build-nativeneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"target":"x86_64-unknown-linux-gnu","os":"ubuntu-22.04"},{"target":"x86_64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true},{"target":"aarch64-unknown-linux-gnu","os":"ubuntu-latest","use-cross":true},{"target":"aarch64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true},{"target":"x86_64-apple-darwin","os":"macos-15-intel"},{"target":"aarch64-apple-darwin","os":"macos-15"},{"target":"x86_64-pc-windows-msvc","os":"windows-latest"}]}}
release.yml / build-tscneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"target":"x86_64-unknown-linux-gnu","os":"ubuntu-22.04","npm-pkg":"linux-x64-gnu","binary":"verter-tsc"},{"target":"x86_64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-x64-musl","binary":"verter-tsc"},{"target":"aarch64-unknown-linux-gnu","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-gnu","binary":"verter-tsc"},{"target":"aarch64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-musl","binary":"verter-tsc"},{"target":"x86_64-apple-darwin","os":"macos-15-intel","npm-pkg":"darwin-x64","binary":"verter-tsc"},{"target":"aarch64-apple-darwin","os":"macos-15","npm-pkg":"darwin-arm64","binary":"verter-tsc"},{"target":"x86_64-pc-windows-msvc","os":"windows-latest","npm-pkg":"win32-x64-msvc","binary":"verter-tsc.exe"}]}}
release.yml / build-lspneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"target":"x86_64-unknown-linux-gnu","os":"ubuntu-22.04","npm-pkg":"linux-x64-gnu","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"x86_64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-x64-musl","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"aarch64-unknown-linux-gnu","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-gnu","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"aarch64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-musl","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"x86_64-apple-darwin","os":"macos-15-intel","npm-pkg":"darwin-x64","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"aarch64-apple-darwin","os":"macos-15","npm-pkg":"darwin-arm64","binary":"verter-lsp","shim-binary":"verter-relay-shim"},{"target":"x86_64-pc-windows-msvc","os":"windows-latest","npm-pkg":"win32-x64-msvc","binary":"verter-lsp.exe","shim-binary":"verter-relay-shim.exe"}]}}
release.yml / build-mcpneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"target":"x86_64-unknown-linux-gnu","os":"ubuntu-22.04","npm-pkg":"linux-x64-gnu","binary":"verter-mcp"},{"target":"x86_64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-x64-musl","binary":"verter-mcp"},{"target":"aarch64-unknown-linux-gnu","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-gnu","binary":"verter-mcp"},{"target":"aarch64-unknown-linux-musl","os":"ubuntu-latest","use-cross":true,"npm-pkg":"linux-arm64-musl","binary":"verter-mcp"},{"target":"x86_64-apple-darwin","os":"macos-15-intel","npm-pkg":"darwin-x64","binary":"verter-mcp"},{"target":"aarch64-apple-darwin","os":"macos-15","npm-pkg":"darwin-arm64","binary":"verter-mcp"},{"target":"x86_64-pc-windows-msvc","os":"windows-latest","npm-pkg":"win32-x64-msvc","binary":"verter-mcp.exe"}]}}
release.yml / build-wasmneeds.validate.outputs.dry-run == 'true'validateubuntu-latest / 35single
release.yml / build-editor-lspneeds.validate.outputs.dry-run == 'true'validate${{ matrix.os }} / 50{"fail-fast":false,"matrix":{"include":[{"os":"ubuntu-latest","slug":"linux","binary":"verter-lsp"}]}}
release.yml / editor-neovimneeds.validate.outputs.dry-run == 'true'["validate","build-editor-lsp"]${{ matrix.os }} / 35{"fail-fast":false,"matrix":{"os":["ubuntu-latest"],"neovim":["v0.11.0","nightly"],"include":[{"os":"ubuntu-latest","slug":"linux","binary":"verter-lsp"}]}}
release.yml / clean-roomneeds.validate.outputs.dry-run == 'true'["validate","editor-neovim","build-native","build-lsp","build-mcp","build-tsc","build-wasm"]ubuntu-latest / 35single
release.yml / publish-npmneeds.validate.outputs.dry-run != 'true'validateubuntu-latest / 35single
release.yml / build-vsixneeds.validate.outputs.dry-run == 'true'["validate","build-lsp","build-native","build-mcp"]ubuntu-latest / 40single
release.yml / publish-vscodeneeds.validate.outputs.dry-run != 'true'["validate","publish-npm"]ubuntu-latest / 20single
release.yml / github-releaseneeds.validate.outputs.dry-run != 'true'validateubuntu-latest / 25single
release.yml / integration-testneeds.validate.outputs.dry-run != 'true'["validate","publish-npm"]callee / default./.github/workflows/integration-test.yml inputs={"source":"npm","dist-tag":"${{ needs.validate.outputs.dist-tag }}"}

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • validate: source script block; see linked job; Release proof: node scripts/release-proof.mjs --sha "$GITHUB_SHA" --title-prefix "release: " --rehearsal "Release Check" --artifacts "native-*,native-loader,tsc-*,lsp-*,mcp-*,wasm,vsix" [if steps.check.outputs.dry-run != 'true']; Pre-publish validation: source script block; node scripts/check-versions.mjs ; node scripts/check-versions.mjs --json &#124; node -e ".
  • build-native: Build native: source script block; npx napi build -o dist --dts napi.generated.d.ts --platform --release --manifest-path ../../crates/verter_napi/Cargo.toml --target ${{ matrix.target }} --cross-compile ; npx napi build -o dist --dts napi.generated.d.ts --platform --release --manifest-path ../../crates/verter_napi/Cargo.toml --target ${{ matrix.target }}.
  • build-tsc: Build verter-tsc binary: if [ "${{ matrix.use-cross }}" = "true" ]; then<br> cargo zigbuild --release --package verter_tsc --target ${{ matrix.target }}<br>else<br> cargo build --release --package verter_tsc --target ${{ matrix.target }}<br>fi.
  • build-lsp: Build editor binaries: source script block; cargo zigbuild --release --package verter_lsp --package verter_relay_shim --target ${{ matrix.target }} ; cargo build --release --package verter_lsp --package verter_relay_shim --target ${{ matrix.target }}.
  • build-mcp: Build verter-mcp binary: if [ "${{ matrix.use-cross }}" = "true" ]; then<br> cargo zigbuild --release --package verter_mcp --bin verter-mcp --target ${{ matrix.target }}<br>else<br> cargo build --release --package verter_mcp --bin verter-mcp --target ${{ matrix.target }}<br>fi.
  • build-wasm: Build WASM: pnpm --filter @verter/wasm build; Smoke test WASM: node -e "const fs = require('fs'); const wasm = fs.readFileSync('packages/wasm/wasm/verter_wasm_bg.wasm'); console.log('WASM size:', wasm.length, 'bytes'); if (wasm.length < 1000) throw new Error('WASM too small');".
  • build-editor-lsp: Build verter-lsp (release): cargo build -p verter_lsp --release.
  • editor-neovim: Provision tsgo and framework types: npm ci --ignore-scripts; Plenary verdict guard: node --test scripts/editor-contracts/plenary-outcome-guard.test.mjs; Run plenary busted suite: source script block; see linked job.
  • clean-room: Stage release artifacts: node scripts/release-publish.mjs stage --artifacts "${RUNNER_TEMP}/release-artifacts"; Prepare packages: node scripts/release-publish.mjs prepare; Clean-room install and public entrypoint smoke: node scripts/githubctl/clean-room.mjs --work-dir "${RUNNER_TEMP}/clean-room-${{ github.run_id }}-${{ github.run_attempt }}" --report "${RUNNER_TEMP}/clean-room-${{ github.run_id }}-${{ github.run_attempt }}/report.json".
  • publish-npm: Stage release artifacts: node scripts/release-publish.mjs stage --artifacts "${RUNNER_TEMP}/release-artifacts"; Prepare packages: node scripts/release-publish.mjs prepare; Publish packages: node scripts/release-publish.mjs publish-npm --dist-tag "${{ needs.validate.outputs.dist-tag }}" --provenance; Verify packages on the registry: node scripts/release-publish.mjs verify-npm.
  • build-vsix: Build TS packages: pnpm run build:ts; Package VSIX: source script block; node package.mjs --target "$platform".
  • publish-vscode: Publish VSIXes to the Marketplace: source script block; pnpm exec vsce publish --packagePath "$vsix".
  • github-release: Generate release notes: git-cliff --latest --strip header > /tmp/RELEASE_NOTES.md; Stage release assets: source script block; see linked job; Create GitHub Release: source script block; see linked job.
  • integration-test: reusable ./.github/workflows/integration-test.yml; control/artifact steps; see linked source.

tsserver nightly (tsserver-nightly.yml) ​

Source: tsserver-nightly.yml.

Triggers and input defaults: {"schedule":[{"cron":"30 4 * * *"}],"workflow_dispatch":null}.

Concurrency: {"group":"tsserver-nightly","cancel-in-progress":false}. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
tsserver-nightly.yml / providersdefault[]ubuntu-latest / 95single
tsserver-nightly.yml / plugindefault[]ubuntu-latest / 60single
tsserver-nightly.yml / editor-builddefault[]ubuntu-latest / 45single
tsserver-nightly.yml / vscode-e2edefaulteditor-buildubuntu-latest / 45{"fail-fast":false,"matrix":"${{ fromJSON(needs.editor-build.outputs.matrix) }}"}
tsserver-nightly.yml / editor-neutraldefaulteditor-buildubuntu-latest / 25single
tsserver-nightly.yml / resultalways()["providers","plugin","editor-build","vscode-e2e","editor-neutral"]ubuntu-latest / 5single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • providers: Build the tsserver plugin prerequisites: pnpm --filter @verter/language-shared --filter @verter/typescript-plugin build; Run serial tsserver provider tests: node scripts/provider-ci.mjs run tsserver.
  • plugin: Build the tsserver plugin prerequisites: pnpm --filter @verter/language-shared --filter @verter/typescript-plugin build; Native-free TypeScript plugin tests: pnpm vitest run packages/typescript-plugin/src --exclude 'packages/typescript-plugin/src/tsc/**'; Build native binding (release): pnpm run build:native [if ${{ !cancelled() }}]; Build TS packages: pnpm run build:ts [if ${{ !cancelled() }}]; Native-backed @verter/typescript-plugin tests: pnpm vitest run packages/typescript-plugin/src/tsc [if ${{ !cancelled() }}].
  • editor-build: Build verter-lsp, relay shim, DX baseline and MCP server (debug): cargo build -p verter_lsp -p verter_relay_shim -p verter_dx_baseline -p verter_mcp; Prepare VS Code E2E artifacts: pnpm --filter verter-vscode prepare:e2e:ts; Derive the tsserver VS Code E2E route matrix: echo "matrix=$(node packages/vue-vscode/out-test/e2e/printCiMatrix.js --tier=tsserver)" >> "$GITHUB_OUTPUT".
  • vscode-e2e: Make editor integration binaries executable: chmod +x target/debug/verter-lsp target/debug/verter-relay-shim target/debug/verter-mcp; Resolve VS Code host cache key: test_electron=$(node -p "require('./packages/vue-vscode/node_modules/@vscode/test-electron/package.json').version")<br>echo "key=vscode-host-${RUNNER_OS}-${RUNNER_ARCH}-${E2E_VSCODE_VERSION}-test-electron-${test_electron}" >> "$GITHUB_OUTPUT"<span v-pre>; Acquire VS Code ${{ env.E2E_VSCODE_VERSION }}: source script block; </span>see linked job<span v-pre>; Run E2E tests (shard ${{ matrix.shard }}/${{ matrix.shard_count }}): </span>echo "Routes: ${E2E_ROUTES}"<br>xvfb-run -a pnpm --filter verter-vscode test:e2e:run.
  • editor-neutral: Make editor integration binaries executable: chmod +x target/debug/verter-lsp target/debug/verter-relay-shim target/debug/verter-mcp; Build editor-neutral contract packages: pnpm --filter "@verter/dx-harness..." build; Run the tsserver contract: pnpm --filter @verter/dx-harness test:editor-neutral-lsp.
  • result: Verify every tsserver lane succeeded: source script block; node -e '.

Validation Probe (validation-probe.yml) ​

Source: validation-probe.yml.

Triggers and input defaults: {"schedule":[{"cron":"0 5 * * *"}],"workflow_dispatch":null}.

Concurrency: {"group":"validation-probe-${{ github.ref }}","cancel-in-progress":true}. Permissions: {"contents":"read"}.

Job / sourceSelection (if; absent means Actions default success)DependenciesRunner / timeout minutesMatrix / reusable call
validation-probe.yml / probedefault[]ubuntu-latest / 60single
validation-probe.yml / observedefault[]ubuntu-latest / 60single

Declared checks and execution entry points (step conditions remain authoritative at the linked source):

  • probe: Build the native addon: pnpm --filter @verter/native build; Generate the pinned Svelte corpus: pnpm --ignore-workspace install && pnpm generate; Run the workload probe: cargo nextest run -p verter_validation_probe --features external-corpus; Render the job summary: cargo run -p verter_validation_probe --bin validation-probe-summary -- \<br> --markdown >> "$GITHUB_STEP_SUMMARY" [if always()]; Lane disposition: cargo run -p verter_validation_probe --bin validation-probe-summary -- --dispose [if always()].
  • observe: Build the native addon: pnpm --filter @verter/native build; Generate the pinned Svelte corpus: pnpm --ignore-workspace install && pnpm generate; Capture observations: cargo run -p verter_validation_probe --features external-corpus --bin validation-probe-observe -- --lane main.

Released under the MIT License.