Skip to content

Build Test and Release

Codex Agent edited this page Jun 2, 2026 · 1 revision

Build, Test & Release 🧪

This page covers local development, VSIX packaging, and release checks for Export2AI.


Prerequisites

Requirement Purpose
VS Code / Cursor ^1.105.0 extension runtime target
Node.js 24+ local build and release parity
npm dependency install and scripts

Install

npm install

Compile

npm run compile

The compile pipeline:

  1. generate small target-model menu metadata
  2. run TypeScript compile
  3. sync comment-strip settings display
  4. merge package.slim.json into generated package.json
  5. sync extension metadata from version/changelog

Package VSIX

npm run package

Output:

build/export2ai-x.y.z.vsix

The release workflow expects VSIX files under build/.


Important npm Scripts

Script Purpose
npm run compile generated menus → TypeScript → settings sync → package merge
npm run watch compile on save
npm run package compile once and build VSIX
npm run slim:package write slim manifest back before commit when needed
npm run test:critical run the critical smoke matrix
npm run test:critical:list list available smoke targets
npm run test:tokens token format/model routing/manifest hygiene checks
npm run test:soft-delete repository control and .git marker safety
npm run test:settings-nav extension ID and settings metadata checks
npm run test:explorer-badges badge provider default/off/opt-in behavior
npm run test:menu-merge generated menu shape and Command Palette hides
npm run test:marketplace-assets packaged icon/banner asset hygiene
npm run test:live live zip creation smoke test

Critical Smoke Tests

npm run test:critical

The critical matrix covers release-risk areas such as:

  • token labels and tokenizer routing
  • soft-delete placeholder behavior
  • settings navigation and metadata
  • Explorer badge gating
  • menu merge and generated commands
  • marketplace/VSIX hygiene
  • live archive creation

Use focused targets while iterating, then run the full critical set before release.


Package Manifest Workflow

Export2AI keeps a slim editable manifest and a generated runtime manifest:

File Edit directly? Purpose
package.slim.json yes source-of-truth manifest without generated command expansion
package.json generated by compile merged manifest used by VS Code/Cursor
scripts/generated/model-target-contributes.json generated small model-target command layer

If package.json grows unexpectedly into very large sizes, stop and inspect menu generation. The removed token-bucket command system must not return.


Release Checklist

  1. Update changelog for the version.
  2. Ensure version metadata is correct in package.slim.json.
  3. Run:
npm install
npm run compile
npm run test:critical
npm run package
  1. Inspect build/export2ai-x.y.z.vsix.
  2. Verify README, wiki, and docs match current behavior.
  3. Tag release according to repository convention.
  4. Confirm GitHub Release assets and optional marketplace publish steps.

Documentation Release Check

Before publishing documentation changes:

  • README.md remains compact and readable.
  • README links point to existing wiki pages.
  • wiki/Home.md and _Sidebar.md expose all major pages.
  • docs/README.md lists technical docs and explains wiki source.
  • No generated zip files are committed.
  • No unrelated source/code edits are included in a docs-only patch.

Clone this wiki locally